A Version Control System (VCS) is a system to track changes over files to allow for easy historical recall. Git is a leading modern VCS that allows users to explore the history of their files across time, across collaborators, and even across parallel versions, all in a comprehensive and consistent manner. Git is easy to set up, is used across research and industry, and has grown an expansive community thanks in part to services such as Github, Bitbucket, and Gitlab. In the 21st century, git has become the most popular way of tracking files, creating backups, and collaborating, especially on open-source projects.
This workshop introduces Git in a hands-on format over two sessions scheduled two days apart (participants should attend both sessions). This workshop will be offered in-person only.
Learning objectives: Participants will leave with a solid understanding of git foundations and a grasp over useful git workflows. They will learn to use git locally on their own computers, as well as on Github. This workshop will mainly focus on using git individually and will not cover broader team workflows.
Knowledge prerequisites: Basic comfort with the bash command-line, but no prior experience with git or other VCS is assumed. This workshop has been harmonized with “Pro Git,” (https://git-scm.com/book/en/v2) a free online book that comprehensively covers git. Participants are asked to read the following parts of the book before attending (about 1–1.5 hours of reading):
Chapters 1, 2.1–2.5, 3.1, 3.2, 3.5, 6, 7.7
Though not strictly required, it is helpful to read (about 0.5 hours of reading):
Chapters 2.7, 2.8, 3.3, 3.4, 3.6, 3.7, 6.7
Of course, motivated participants are encouraged to read the entire book (about 3 hours of reading), an excellent resource for learning git.
Hardware/software prerequisites: (1) Ideally, participants should have Git installed on their local machines. Chapter 1.5 of “Pro Git” (https://git-scm.com/book/en/v2) describes installation. Some users may have difficulty installing git locally. As an alternative, participants can connect remotely to Adroit (https://forms.rc.princeton.edu/registration/) and conduct the workshop that way. (2) Participants must also have access to a Linux/Unix command line. Mac and Linux users already have this. Windows users can either install an SSH client (https://researchcomputing.princeton.edu/learn/workshops-live-training/h…) and connect remotely to Adroit, or they can enable access to a Linux command line on their laptop (options include Cygwin, Git Bash, the Windows Subsyst