Git & GitLab Workshop
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
- Theoretical Session notes — Git fundamentals, collaboration, GitHub/GitLab, tools
- Practical Session notes — Fork, clone, branch, commit, merge, push, open an MR
- Participants — one file per participant, filled in during the practical session
- Events — date, location, and organisers
📌 Mandatory Homework — Before the Practical Session
Please complete the following before showing up to the second session:
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 gitor 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.