welcome! virtual tutorial starts at 15:00 gmt · • git merge my_feature • after resolving any...
TRANSCRIPT
![Page 1: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/1.jpg)
Welcome!
Virtual tutorial starts at 15:00 GMT
Please leave feedback afterwards at:www.archer.ac.uk/training/feedback/online-course-feedback.php
![Page 2: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/2.jpg)
Introduction to using Version Control with Git
ARCHER Virtual Tutorial25/07/2018
![Page 3: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/3.jpg)
Reusing this material
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
http://creativecommons.org/licenses/by-nc-sa/4.0/deed.en_US
This means you are free to copy and redistribute the material and adapt and build on the material under the following terms: You must give appropriate credit, provide a link to the license and indicate if changes were made. If you adapt or build on the material you must
distribute your work under the same license as the original.
Note that this presentation contains images owned by others. Please seek their permission before reusing these images.
![Page 4: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/4.jpg)
Outline• Why version control?• Why Git?• Getting started with Git
• Concepts• Basic workflow• Gotchas / subtleties to keep in mind
• Git vs other version control tools• Hosting & additional features (GitHub & GitLab)
• Forking & pull requests, issue tracking, tests• Distributed workflows
![Page 5: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/5.jpg)
Why version control?
![Page 6: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/6.jpg)
Why version control?
initial_code (v0.1)
code_that_works (v0.2)
code_faster (v0.3)
final_code (1.0)
![Page 7: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/7.jpg)
Why version control?
initial_code
code_that_works
code_different_algorithm (D)
code_faster
code_uses_ext_lib (C)
code_Alice_new_functionality (A)
code_Bob_added_tests (B)
A+B?
A+B+C+D?
C+D?
![Page 8: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/8.jpg)
Why version control?Version control tools:• Provide a framework to record meaningful information
about versions in a systematic way
• Allow you to revisit / recover past versions (history!)• snapshot of a set of files captures interdependencies between files
• Automate the tracking of changes between versions
![Page 9: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/9.jpg)
Why version control?Version control tools:• Facilitate reproducible research
• Mark results with the exact version of code used to generate them, and make versions public
• Allow for easy duplication and synchronisation of files across multiple locations• Avoid error-prone manual transferring of file versions• Work on different machines• Help maintain backups of your data
![Page 10: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/10.jpg)
Why version control?Version control tools:
• Enable collaborative work on one or more of the same files at the same time• identify and combine contributions from different authors
• Are crucial for sustainable software development work
![Page 11: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/11.jpg)
Why Git?
![Page 12: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/12.jpg)
Why Git?
• Source: Google Trends
• cvs svn mercurial git
![Page 13: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/13.jpg)
Why Git?• Git dominates (open source) software development, and
software for computational science used in academia
• Many existing projects use Git – you are very likely to encounter it
• Most popular online hosting and collaborative tools for software development target Git• GitHub, GitLab
![Page 14: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/14.jpg)
Getting started with GitGit concepts
![Page 15: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/15.jpg)
Git concepts• Repository (“repo”)
• A complete archive containing the full history of all recorded versionsof files (i.e. all snapshots taken), stored as the differences (“deltas”)between successive versions
• Stored on your local machine (unlike Subversion/svn and cvsrepositories)
• Created using “git init”, or downloaded using “git clone”
• Commit (verb) (“git commit”)• To record a snapshot of the current state of one or more files in the
repository
• Commit (noun)• A snapshot of the kind described above
![Page 16: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/16.jpg)
Git concepts• Branch (noun)
• A series of successive snapshots (“commits”) of one or more files stored in the repository
• All repositories contain at least one branch (the master branch)
• Branch (verb) (“git branch”)• Creation of a new branch as an offshoot from the current branch• New branch is initialised with copies of the current versions of all files in the current
branch• Typically done in order to initiate development of a new feature• Changes isolated in new branch – no other branches affected
• Merge (“git merge”)• Combine two branches by merging one into the other• Often done to integrate new feature developed on separate branch into the main
codebase (“master” or “dev” branch) following successful testing
![Page 17: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/17.jpg)
Git concepts• Working tree / working directory
• Your local view of the files in the repository• Shell only shows files in one branch at any given time (GUI tools can
expand this view)• Differs from the latest commit on the relevant branch in repository if
you’ve changed, added or removed files
• Check out (“git checkout”)• Switch the working directory view from one branch to another
• Log (“git log”)• A human-readable record of which files in the repository were changed
when, including (hopefully) meaningful comments by the author who made the changes
![Page 18: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/18.jpg)
Git concepts – interacting with remote repos• Push (“git push”)
• Upload the commits stored in your local repository to a corresponding remote repository
• Default behaviour is to push the current branch to corresponding remote “upstream” branch
• Will not work if there are conflicts, will then need to pull first (see below) and push once conflicts resolved
• Pull (“git pull”)• Download commits from a remote repository and merge them into your local
repository• Default behaviour is to pull from the remote branch corresponding to the
current branch, and merge into the current branch• Actually consists of two sub-commands: “git fetch” and “git merge”• Any conflicts become apparent and will need to be resolved
![Page 19: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/19.jpg)
Getting started with GitBasic workflows
![Page 20: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/20.jpg)
Basic workflows – private repoTo create and maintain your own local repository:• git init• git add file1 file2 • git commit –m “Added initial versions of files”
• Modify/add new files and repeat:• git add modified_files newfiles• git commit –m “Description of changes”
• Etc.
![Page 21: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/21.jpg)
Basic workflows – shared repoTo develop a new feature on a shared software project as a member of the development team:• Clone project repository locally (assume repository lives on
GitHub or GitLab):• git clone repository_URL
• Create a new branch for your feature:• git branch myFeature
• Switch the local working directory view to that branch:• git checkout myFeature
• Modify/add files and commit these • Push changes to the original remote (origin) repo:
• git push
![Page 22: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/22.jpg)
Basic workflows – shared repoOnce feature has been developed and tested successfully, want to integrate it into the main code for general release:• Need to perform the merge locally• First need to make sure our destination branch (e.g. “master”) is up to
date:• git checkout master• git pull
• Then merge our feature branch into master:• git merge my_feature
• After resolving any conflicts, push the result to share with collaborators / the world:• git push
• Note: it is risky to merge directly into master branch, as conflict resolution may get messy. Most development workflows merge into intermediary development branches instead
![Page 23: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/23.jpg)
Getting started with GitGotchas / subtleties to keep in mind
![Page 24: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/24.jpg)
Gotchas / subtleties to keep in mind• Git has the notion of the “index”
• A staging area (cache) listing files that are due to be committed• Existing tracked files that are modified need to be added explicitly to the index every time they
are modified to make sure they are included in a commit• Show using “git status”
• When in doubt, orient yourself with git status• This shows the current branch, the index, and how the current state of the working tree
compares to the repository
• When you create a new branch locally that you intend to push to a remote repository, you will need to use the --set-upstream or --track option (see the relevant man page, git branch --help or git push --help)
• HEAD• This is a reference to the most recent commit on whatever branch is currently checked out
![Page 25: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/25.jpg)
Git vs other version control tools
![Page 26: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/26.jpg)
Git vs other version control tools• Git is an example of distributed / decentralised version
control (same as Mercurial) – everybody has a local repository
• Older tools (CVS, Subversion/svn) are centralised – there is only one copy of the repository, stored on a server –everybody has local working copies
• Git has a much greater emphasis on / efficiency using branches à more complex workflows
![Page 27: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/27.jpg)
Distributed version controlEach user has their own repository copy stored locallyCentral server is optional (in practice often useful)
Alice
Bob
Carol
Dave
![Page 28: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/28.jpg)
Distributed version controlNew users clone, i.e. copy, an existing repository• Typically from a central server but can in principlecopy from each other
Alice
Bob
Carol
Dave
![Page 29: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/29.jpg)
Distributed version controlUsers make changes in their working copy and commit thisto their local repository è repositories diverge
Alice
Bob
Carol
Dave
changes(on master branch or new branch)
changes(on master branch or new branch)
![Page 30: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/30.jpg)
Distributed version controlTo combine content from different repositories someonehas to fetch other people’s changes into their working copyand perform merges there
Alice
Bob
Carol
Dave
Dave pulls from Carol, merges his and Carol’s changes
![Page 31: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/31.jpg)
Distributed version controlTo combine content from different repositories someonehas to fetch other people’s changes into their working copyand perform merges there
Alice
Bob
Carol
Dave
Or: Alice pulls from Carol and Dave and merges their changes
![Page 32: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/32.jpg)
Distributed version controlOften use a central server for convenience:Ø Clone
ServerAlice
Bob
Carol
Dave
![Page 33: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/33.jpg)
Distributed version controlØ Commit local changes
ServerAlice
Bob
Carol
Dave
changes
changes
![Page 34: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/34.jpg)
Distributed version controlØPush changes to server repository
ServerAlice
Bob
Carol
Dave
![Page 35: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/35.jpg)
Distributed version controlIf changes were made to master branch:• First to commit to server (e.g. Carol) “wins”
ServerAlice
Bob
Carol
Dave
![Page 36: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/36.jpg)
Distributed version controlIf changes were made to master branch:• Dave has to first pull Carol’s changes from server and merge
them with his changes on master branch
ServerAlice
Bob
Carol
Dave
![Page 37: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/37.jpg)
Distributed version controlIf changes were made to master branch:• Dave then pushes result back to master branch on server
for others
ServerAlice
Bob
Carol
Dave
![Page 38: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/38.jpg)
Distributed version controlIf changes were made to new branches:ØCarol and Dave push to different branches on serverØAlice can pull Carol and Dave’s distinct branches
and merge them
ServerAlice
Bob
Carol
Dave
![Page 39: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/39.jpg)
Distributed version controlØAlice then pushes result back to a single branch on server
(can be master branch or another branch) for others
ServerAlice
Bob
Carol
Dave
![Page 40: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/40.jpg)
Distributed version control• Don’t need to be online to commit changes• Changes can be committed privately
• Encourages committing early on• Encourages branching to commit e.g. experimental code
• Full revision history (log & past versions) available locally• Can adopt workflows other than centralised for combining
content from contributors• Many common operations are faster because no
communication with server needed
![Page 41: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/41.jpg)
Hosting & additional features
![Page 42: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/42.jpg)
Hosting & additional featuresDistributed version control systems became very popular over the past ~8 years (Git born 2005)
A number of websites (GitHub, GitLab, Bitbucket, …) have helped fuel this trend and exploit the potential of distributed version control.
GitHub et al. offer repository hosting and management and additional features that facilitate collaborative software development
![Page 43: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/43.jpg)
Hosting & additional featuresAditional features:• Issue tracker to track and discuss bugs, feature requests etc.
tightly integrated with version control workflow• “Pull request” mechanism allowing developers to clone (fork) a
repository, make changes, then suggest to the original owner that these changes are integrated into the parent repository• Useful for integrating contributions from unknown developers – no
need to give write access to original project repository• Can set up pipelines / jobs that run server-side after a commit
is pushed – e.g. for continuous integration testingGitLab site-installable web-based repository management frameworks offer similar features.
![Page 44: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/44.jpg)
Distributed workflows
Reproduced under CC Attribution Non-Commercial Share Alike 3.0 licensesee http://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows
Integration manager workflow:
![Page 45: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/45.jpg)
Distributed workflows
Reproduced under CC Attribution Non-Commercial Share Alike 3.0 licensesee http://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows
“Dictator and lieutenants” workflow:
![Page 46: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/46.jpg)
Final words• Version control systems are not a magic bullet, but a
powerful tool
• You still need to think and decide how to manage your work
• When working collaboratively, need to communicate
![Page 47: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/47.jpg)
References
• https://oer.gitlab.io/oer-on-oer-infrastructure/Git-introduction.html
• https://backlog.com/git-tutorial/
• Quick Introduction to Version Control with Git and Github:• https://doi.org/10.1371/journal.pcbi.1004668
![Page 48: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/48.jpg)
http://www.archer.ac.uk/training/
• Face-to-face courses• timetable, information and registration• material from all past courses
• Virtual tutorials• timetable plus slides and recordings from past courses• please leave feedback on previous tutorials after viewing material
![Page 49: Welcome! Virtual tutorial starts at 15:00 GMT · • git merge my_feature • After resolving any conflicts, push the result to share with collaborators / the world: • git push](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5faeeb224bb10b56d7044d8b/html5/thumbnails/49.jpg)
Goodbye!
Thanks for attendingPlease leave feedback at:
www.archer.ac.uk/training/feedback/online-course-feedback.php