Course Overview
Do you struggle to keep track of the changing versions of your scripts/programs? Have you ever made changes to a file, only to wish shortly afterward that you could easily get back the old version? Do you want to learn how to harness the awesome features of GitLab for collaboration, issue tracking, software publication, etc?
Why should you learn to use a version control system such as Git?
* From the Version control with Git lesson by The Carpentries
- Nothing that is committed to version control is ever lost, unless you work really, really hard at it. Since all old versions of files are saved, it’s always possible to go back in time to see exactly who wrote what on a particular day, or what version of a program was used to generate a particular set of results.
- As we have this record of who made what changes when, we know who to ask if we have questions later on, and, if needed, revert to a previous version, much like the “undo” feature in an editor.
- When several people collaborate in the same project, it’s possible to accidentally overlook or overwrite someone’s changes. The version control system automatically notifies users whenever there’s a conflict between one person’s work and another’s.
Teams are not the only ones to benefit from version control: alone researchers can benefit immensely. Keeping a record of what was changed, when, and why is extremely useful for all researchers if they ever need to come back to the project later on (e.g., a year later, when memory has faded).
Version control is the lab notebook of the digital world: it’s what professionals use to keep track of what they’ve done and to collaborate with other people. Every large software development project relies on it, and most programmers use it for their small jobs as well. And it isn’t just for software: books, papers, small data sets, and anything that changes over time or needs to be shared can and should be stored in a version control system.
To learn Git and how to use it for collaborative projects, we propose to follow together a lesson streamed from a Coderefinery workshop. Our trainers will be available in the (zoom) room to help learners from EMBL, troubleshooting eventual problems and answering questions to support them following the CodeRefinery instructor. The lesson will cover how to use version control locally and in collaborative project through online platforms (GitHub or GitLab).
Participants will learn:
- how to maintain a history of changes with Git and how to compare differences between versions
- how to restore old versions of files
- how to synchronise local versions with a remote repository
- how multiple developers can collaborate effectively on a project, and how to resolve conflicting changes
- how to manage a project through the GitLab interface
- how to choose the right license for a project
- how to work with Git directly within your development environment (e.g. RStudio)
Technical Setup and important information (please read)
In order to be able to use the tools learned in their daily work after the course, participants are required to bring their own laptop and install the Bash Shell and Git. Here the instructions (Windows, MacOS and Linux separated in tabs) to install the Bash Shell and Git. Prior to the lesson, the CodeRefinery workshop includes a session to onboard participants and check their installation. This will happen on Tue (Sep 12, independently with Coderefinery trainers) OR Wed (Sep 13, supported by Bio-IT staff), at 14:30 – 16:00.
Prerequisites
Course participants are expected to be familiar with fundamentals of working in the Linux command line, i.e. commands such as cd
, mv
, mkdir
, pwd
, and touch
. If you are not, we suggest to read our Introduction to the Linux Command Line (PDF), or The Carpentries The Unix Shell, course materials.
Programme (tentative)
- Installation help and on-boarding – Wed (Sep 13) , 14:30 – 16:00.
- Introduction to version control 1/2 – Tue (Sep 19) , 09:00 – 13:30
- Introduction to version control 2/2 – Wed (Sep 20) , 09:00 – 13:30
- Collaborative distributed version control – Thu (Sep 21) , 09:00 – 13:30
Registration
With this specific course setup (Bio-IT helpers in a lesson followed in streaming), we propose to:
- Either follow the stream with us in a room in Heidelberg, or
- Follow the stream wherever, joining us via an EMBL chat channel which will be provide. A zoom room will be available for troubleshoting issues with our help.
If multiple people from the same site (not Heidelberg) will express interest, we will put you in contact with each other and try to book a common room.
Bookings
Bookings are closed for this event.