Detailed information about the course

[ Back ]
Title

Version Control With Git

Dates

11-13 October 2023, (2,5 days)

Lang EN Workshop language is English
Organizer(s)

Dr. Grégoire Rossier, SIB

Speakers

Dr. Robin Engler, SIB
Dr. Vassilios Ioannidis, SIB

Description

Git is an open source, distributed, version control system for tracking changes in source code and other types of text documents. Created by Linus Torvald and first released in 2005, Git has become the de-facto standard for project source code management, and is extensively used both in open source and commercial software development. The usage of Git is not limited to code development, but can also be used to keep track of data analysis scripts and pipelines.

This 2.5 day course gives a very comprehensive introduction to Git and its most useful commands, as well as an introduction to collaborative workflows and to using GitHub. The last half-day of the course is optional.

At the end of the course, the participants are expected to have understood and practiced the following:
- Introduction to Version Control Systems;
- Basic Git concepts: commits, the HEAD pointer and the Git index;
- Git branches: introduction to branched workflows and collaborative workflow examples;
- Branch management: merge, rebase and cherry-pick;
- Retrieving data from the Git database: git checkout;
- Working with remotes: share your work and collaborate;
- Basics of GitHub and GitLab.

Program

This course is coordinated with the doctoral program Staromics of CUSO, whose members have the priority.

Overview Git is an open source, distributed, version control system for tracking changes in source code and other types of text documents. Created by Linus Torvald and first released in 2005, Git has become the de-facto standard for project source code management, and is extensively used both in open source and commercial software development. The usage of Git is not limited to code development, but can also be used to keep track of data analysis scripts and pipelines. This 2.5 day course gives a very comprehensive introduction to Git and its most useful commands, as well as an introduction to collaborative workflows and to using GitHub. The last half-day of the course is optional.

Audience This course is aimed at people with no or little knowledge of Git, who are interested in using a version control system for collaborative work, or simply to keep track of modifications in their scripts/code base/files. This includes people working on code development, but also scientists interested in improving the reproducibility of their data analyses by keeping track of their scripts using version control.

Learning objectives At the end of the course, the participants are expected to have understood and practiced the following:
-Introduction to Version Control Systems.
-Basic Git concepts: commits, the HEAD pointer and the Git index.
-Git branches: introduction to branched workflows and collaborative workflow examples.
-Branch management: merge, rebase and cherry-pick.
-Retrieving data from the Git database: git checkout.
-Working with remotes: share your work and collaborate.
-Basics of GitHub and GitLab.

Prerequisites Knowledge/competencies: The course is focused on using Git in command line mode (no graphical user interface). It is therefore necessary to have some basic knowledge of UNIX command line, e.g. how to change directory or how to edit a file in a command line editor such as vim/nano. If you are not familiar with these UNIX fundamentals, we strongly recommend you to take the following online tutorial before the start of the course.

Technical
Your computer must be installed with a recent version of Git. Git is available on all major platforms (https://git-scm.com/download). For online classes, you should also have a working microphone as some exercises involve collaboration/communication with other participants.

 

Schedule
Day 1:
Introduction to version control systems and Git. Git basics: your first commit. Git concepts: commits, the HEAD pointer and the Git index. Git branches: introduction to branched workflows and collaborative workflow examples. Branch management: merge, rebase and cherry-pick. Retrieving data from the Git database: git checkout. Working with remotes: collaborating with Git. GitHub: a brief overview.

Day 2:
Rewriting history: interactive rebase, git reset and commit amending. The detached HEAD state explained. The Git stash: Git's "cut and paste" functionality. Git tags: label important commits. GitHub: creating a new project, adding new users and collaborating wit them.

Day 3 (half-day):
The last half-day of the course is optional and covers two Git extensions that can be useful in certain scenarios: Git LFS: versioning large files with Git. Git submodules: embed a Git repository as a subdirectory of another Git repo.

Venue and Time The course will take place at the University of Lausanne. Our courses usually start at 9:00 and end around 17:00. Precise information about location and time will be provided to the participants on due time.

Additional information
Coordination: Grégoire Rossier. For more information, please contact [email protected].

Location

UNIL, room POL-318

Information

Registration on: www.sib.swiss/training/course/20231011_GIT

Expenses

Reimbursements:

Reimbursements for CUSO StarOmics students: - Train ticket, 2°class, half-fare from your institution to the place of the activity.

NEW from 2021: Reimbursement of your travel tickets can be asked online through your MyCUSO.

See HERE for the procedure.

For any question concerning reimbursement please contact the CUSO StarOmics coordinator Corinne Dentan

Other CUSO Students: Please contact the coordinator of your Program.

Registration

Registration on: https://www.sib.swiss/training/course/20231011_GIT

Cancellation deadline: 02 October 2023

Please note that participation to SIB courses is subject to their general conditions. You will be informed by email of your registration confirmation.

Places

30

Deadline for registration
Joint activity joint
short-url short URL

short-url URL onepage