Versioning code and documentation with Git & GitHub

August 14, 2026 ยท View on GitHub

Lesson overview

License: Creative Commons Attribution 4.0 International License

Target Audience: Researchers, trainers, training providers

Level: Beginner

Prerequisites
To be able to follow this course, learners should:

Have BASH/Linux/Unix command-line skills.

If you lack command-line experience, you can prepare by following this e-learning or Linux introduction.

Description
This hands-on course introduces Git and GitHub to researchers, trainers, support staff, and anyone interested in version control. Git and GitHub are essential tools for ensuring reproducibility and efficient collaboration in computational projects. You will learn how to configure Git, manage project history, and work with local and remote repositories.

Through practical exercises, you will gain confidence in creating and managing repositories, applying core Git operations, and collaborating through branching and pull requests.

The presentation which goes alongside this material can be found here.

Learning Outcomes:
By the end of the course, learners will be able to:

  1. Configure Git on a local machine for version control.
  2. Create and manage repositories to track changes and maintain project history.
  3. Apply essential Git operations (staging, committing, pushing) for effective workflow locally and remotely.
  4. Connect and synchronize local repositories with GitHub.
  5. Implement branching and pull request workflows for collaborative development.
  6. Interpret Git history and logs to monitor project evolution and resolve issues.
  7. Troubleshoot common version control problems using basic debugging techniques.

Time estimation: 16 hours (2 days)

Requirements: The (technical) installation requirements are described in the chapter "Get ready".

Supporting Materials:

  1. Exercises
  2. Slides

Proposed Schedule

TimeDay 1TimeDay 2
09h30Configurations & Introduction09h30Solving Conflicts
11h00Coffee break10h30Coffee break
11h15Routine usage part 1 (status-stage-commit)10h30Experimenting Risk Free: Working with Branchs
13h00Lunch12h30Lunch
14h00History & Comparing Versions13h00Tagging & Forking
14h40Coffee break15h00Coffee break
14h55Collaborating in GitHub15h00Using the browser
17h00End of the day17h00End of the day

Acknowledgement:

Funding: This project has received funding from VIB and ELIXIR-BE.

PURL:

Authors and Contributors

Authors

Bruna Piereck

James Collier

Tuur Muyldermans

Alexander Botzki

Contributors

We welcome contributors for these materials

Citing this lesson

Please cite as:

Piereck Moura, B., Botzki, A., Collier, J.& Muyldermans, T. (2026, June 19). Versioning code and documentation with Git & GitHub. Zenodo. https://doi.org/10.5281/zenodo.20761246

Chapters List

ChapterTitleSummary
1Get Ready for the course
In this chapter you will find the step-by-step of what you need to get ready for this course.
2IntroductionFind out the differences between Git and GitHub and Why is Git in several cases the best approach for versioning?
3Get started with GitUnderstand how Git is structured, make your first commit, learn the basic routine to get one version saved and managed with Git.
4A travel in Time: Check your versionsMoving towards becoming more confident and using some of the power of Git. Learn to compare versions.
5Connect to GitHubConnect your local repository to GitHub, make a remote backup of all your versions.
ChapterTitleSummary
6README.md & .gitignore - Important filesLearn about README files and .gitignore files. These are essential for a good project development.
7CollaboratingIn this chapter we teach you how to start the collaboration, best practices when working in a team and last but not least ... HOW TO SOLVE CONFLICTS!
8BranchesTo work in collaboration or experiment with new code or documentation desing you can creat parallel developing areas. Learn more about the application of Branchs, it will add more flexibility and better organization.
9ForksYou find a nice repo that you want to work on a new idea, or you want your collaborators to work separatelly before their changed is reviewd and approved for merging. Here it is an strategy for you.
10AliasesCreate commands shortcut for your favorite commands.
11GitHub & RStudio
A big developer of R ?
Integrate Git, GitHub and RStudio, use buttons avoiding extra command line.

Workshop and Material organization

We are using the interactive Open Educational Resource online/offline course infrastructure called LiaScript. It is a distributed way of creating and sharing educational content hosted on github. To see this document as an interactive LiaScript rendered version, click on the following link/badge: LiaScript

About us

About ELIXIR Training Platform

The ELIXIR Training Platform was established to develop a training community that spans all ELIXIR member states (see the list of Training Coordinators). It aims to strengthen national training programmes, grow bioinformatics training capacity and competence across Europe, and empower researchers to use ELIXIR's services and tools.

One service offered by the Training Platform is TeSS, the training registry for the ELIXIR community. Together with ELIXIR France and ELIXIR Slovenia, VIB as lead node for ELIXIR Belgium is engaged in consolidating quality and impact of the TeSS training resources (2022-23) (https://elixir-europe.org/internal-projects/commissioned-services/2022-trp3).

The Training eSupport System was developed to help trainees, trainers and their institutions to have a one-stop shop where they can share and find information about training and events, including training material. This way we can create a catalogue that can be shared within the community. How it works is what we are going to find out in this course.

About VIB and VIB Technologies

VIB is an entrepreneurial non-profit research institute, with a clear focus on groundbreaking strategic basic research in life sciences and operates in close partnership with the five universities in Flanders โ€“ Ghent University, KU Leuven, University of Antwerp, Vrije Universiteit Brussel and Hasselt University.

As part of the VIB Technologies, the 12 VIB Core Facilities, provide support in a wide array of research fields and housing specialized scientific equipment for each discipline. Science and technology go hand in hand. New technologies advance science and often accelerate breakthroughs in scientific research. VIB has a visionary approach to science and technology, founded on its ability to identify and foster new innovations in life sciences.

The goal of VIB Technology Training is to up-skill life scientists to excel in the domains of VIB Technologies, Bioinformatics & AI, Software Development, and Research Data Management.


Editorial team for this course

Authors: @orcid(Alexander Botzki), @orcid(Bruna Piereck)

Technical Editors: Alexander Botzki

License: CC BY SA

{
  "@context": "https://schema.org/",
  "@type": "LearningResource",
  "@id": "https://elixir-europe-training.github.io/ELIXIR-TrP-TeSS/",
  "http://purl.org/dc/terms/conformsTo": {
    "@type": "CreativeWork",
    "@id": "https://bioschemas.org/profiles/TrainingMaterial/1.0-RELEASE"
  },
  "description": "track the versions of your code and your documentation, make your research more reproducible and more impactifull",
  "keywords": "FAIR, Reproducibility, RDM, code, data analysis",
  "name": "Versioning code and documentation with Git & GitHub",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "educationalLevel": "beginner",
  "competencyRequired": "Unix command line basic knowledge",
  "teaches": [
    "1. Configure Git on a local machine to prepare for version control in research projects.",
    "2. Create and manage repositories using Git commands to track changes and maintain project history.",
    "3. Apply basic Git operations (e.g., staging, committing, pushing) to work effectively with local and remote repositories.",
    "4. Implement branching and pull request workflows to collaborate with others on shared codebases.",
    "5. Interpret Git logs and history to understand project evolution and troubleshoot issues.",
    "6. Collaborate with other people in your project."
  ],
  "audience": "life scientists",
  "inLanguage": "en-US",
  "learningResourceType": [
    "tutorial"
  ],
  "author": [
    {
      "@type": "Person",
      "name": "Bruna Piereck"
    },
    {
      "@type": "Person",
      "name": "James Collier"
    },
    {
      "@type": "Person",
      "name": "Alexander Botzki"
    },
    {
      "@type": "Person",
      "name": "Tuur Muyldermans"
    }
   ]
}