Skip to content

Module 2 - Git and GitHub for Version Control

This module introduces the principles and practical use of version control, with Git and GitHub as the main tools. Participants learn how to track code changes, collaborate safely, review work, and connect local development with shared workflows on GitHub.

Learning outcomes

By the end of this module, participants will be able to:

  • explain what version control is and why it matters,
  • create and configure GitHub repositories for software projects,
  • use Git locally to track, inspect, and organize changes,
  • collaborate through branches, issues, pull requests, and reviews,
  • understand how local repositories relate to remote repositories on GitHub,
  • configure lightweight project automation such as checks and documentation publishing,
  • use Git confidently from VS Code while still understanding the core concepts.

Study pages

Use the pages below as the student-facing handbook for this module:

Sections

  1. Quick welcoming to the module (15min)
  2. Introduction to Version Control (15min)
    • What is version control and why developers need it
    • Branches and tracked history
    • Semantic versioning and tagging
    • (Optional) Quiz
  3. Local Git basics (1h30min)
    • Initializing a git project in a local directory
    • Useful commands: status, log, branch, switch
    • Best practices for committing changes
    • Adding tags
    • The .git history folder
    • (Optional) Quiz
  4. Collaborating in GitHub (1h30min)
    • Local vs. remote git repositories
    • GitHub structure: repositories, issues, pull requests, forks
    • Important configurations: LFS, .gitconfig, settings
    • Cloning, pulling, and pushing changes
    • Resolving merge conflicts (rebasing)
    • Issues management (super- and sub-issues)
    • The GitHub workflow
    • (Optional) Working in another person's repository
    • (Optional) Quiz
  5. Advanced GitHub usage (1h30min)
    • Ignoring files (.gitignore)
    • GitHub actions: automating checks
    • Automated testing
    • Setting up secrets
    • Pre-commit hooks
    • Continuous deployment: publishing a documentation site with GitHub Pages
    • (Optional) Quiz

What is new in this handbook

Compared with the short module outline above, this handbook also adds:

  • practical guidance for using Git through VS Code,
  • screenshot placeholders for GitHub pages and workflows that are easier to explain visually,
  • a recovery page for common beginner mistakes such as committing to the wrong branch, handling merge conflicts, or synchronizing with the remote.

Participants' projects

After the last session, we will organize an additional 2-hour session for all participants. The objective of this session is to allow participants to work on their projects uninterrupted, in a room with experts and peers, where they can collaboratively address questions and challenges.