Date(s) - 2022-10-24 - 2022-10-26
10:00 CEST - 15:30 CEST
- Lisanna Paladin
- Renato Alves
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.
This two-days course aims to teach good practice in version control, using
git in conjunction with the EMBL GitLab system, git.embl.de. 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)
The course will provide an introduction to Git via three different interfaces: the command line, a graphical client, and GitLab.
This course is the first part of an event that we will offer yearly and that we call the Git Week, a series of events to discuss (mis)usage, examples and integrations of Git and GitLab at EMBL. The second, advanced part will happen on the following week and if you have limited experience of Git you are strongly encouraged to attend this event before attending the next.
This event is also recommended if you plan to attend the Introduction to Python Programming course on 26-28 October.
Course participants are expected to be familiar with fundamentals of working in the Linux command line, i.e. commands such as
touch. To learn more about this commands, you might like to read our Introduction to the Linux Command Line (PDF) course material.
Course participants are required to bring their own laptop. Further setup instructions will follow closer to the time.
A more detailed programme will be added soon. Each day will include two sessions: the morning session from 10:00 to 12:00 and the afternoon session from 13:30 to 15:30.
We will provide the possibility to have this course on site in Heidelberg. The room will be booked only if we will have enough attendees planning to join in person, hence please be aware that your in person registration might be moved to an online one.