Git & GitLab Workshop

Workshop website

Welcome! This is the home of the Git & GitLab Workshop — a two-session introduction to version control for a mixed audience. No technical background required.

This repository is both: - The living documentation of the workshop - The hands-on playground to learn Git and GitLab


⚠️ Disclaimer

I'm not a Git expert — just a casual user, far from the skills of an integrator or a release manager. I'll probably say inaccurate or even outright wrong things during these sessions.

That's fine. The goal here is not precise knowledge — it's a clear vision: understanding what Git is, why it exists, and how it fits into a workflow. Git is very much a learn by doing tool, and no amount of theory replaces actually using it.

So take everything with a grain of salt, ask questions, and don't hesitate to correct me.


📋 About the Workshop

This workshop introduces version control with Git and collaborative platforms like GitLab and GitHub to a mixed audience — no technical background required.

🎯 Learning Objectives

  • Understand what Git is and why it's useful
  • Know how to clone, modify, commit, and push a repository
  • Understand the concept of branches and merge requests
  • Collaborate with others on a shared repository

📅 Plan

Session 1 — Theory: we'll go from what's closest to you to what's farthest away on the internet: - Your local Git (just you, your machine, no network) - Your GitLab (your code, hosted online) - Others' GitLab (collaboration, shared repositories, merge requests)

Session 2 — Practice: we'll do the reverse — start from a remote repository and work our way back to your machine: - Clone the repo from GitLab to your local machine - Work locally (branch, edit, commit) - Push back and open a Merge Request

A note on the choice of project: I won't assume you all write the same language — some of you do Python, some C, C++, Fortran, who knows. So instead of picking one and leaving half the room lost, this workshop uses a text-based project: participant files written in Markdown. Think of the text as your code. The spell check and structure validation that run automatically are your tests. Everything you'll do here — branching, committing, merging, opening a Merge Request, watching a CI job pass or fail — is exactly what you'd do on a real code project. The language doesn't change any of it.


🗂️ Repository Structure

.
├── README.md                  ← you are here
├── notes/
│   ├── theoretical-session.md ← Session 1 notes
│   └── practical-session.md   ← Session 2 notes
├── participants/
│   ├── TEMPLATE.md            ← copy this to introduce yourself
│   └── ...                    ← one file per participant
├── events/
│   └── git_workshop.md        ← date, location, organisers
└── scripts/
    ├── check_spelling.py      ← spell check (run by the local hook on merge)
    └── check_participant.py   ← structure validation (run by CI on MR)

🔗 What's Here


📌 Mandatory Homework — Before the Practical Session

Please complete the following before showing up to the second session:

  1. Git installation
  2. Create a GitLab account
  3. SSH key setup

Step 1 — Git installation

Check if it's already installed — run this in a terminal:

git --version

You should see something like git version 2.39.x (2.x or above is fine). If you do, you're good — skip to step 2.

If not installed, install it:

  • Linux: sudo apt install git (or your distro's equivalent)
  • macOS: brew install git or install Xcode Command Line Tools (rich kids we see you but you're welcome anyway ;) )
  • Windows: download from git-scm.com (genuinely, what are you doing on Windows??? Come see us at La Guilde, we'll fix that 🐧)

Step 2 — Create a GitLab account

Create a GitLab account if you don't have one yet.


Step 3 — SSH key setup

Check if you already have one — run this in a terminal:

ls ~/.ssh/id_*.pub

If you see a file (e.g. id_ed25519.pub or id_rsa.pub), you likely already have a key — skip to the "add it to GitLab" step below.

If not, generate one:

ssh-keygen -t ed25519 -C "your@email.com"

Add it to your GitLab account:

  • Copy the public key: cat ~/.ssh/id_ed25519.pub
  • Go to GitLab → Settings → SSH Keys → paste it there

Test it:

ssh -T git@gitlab.com

You should see a welcome message with your username.

⚠️ DO NOT CLONE THE REPO YET — cloning is the first thing we'll do together during the session.


Questions? Open an issue on the repo.