Course Overview
📁 Supplementary Documentation & Resources
A complete step-by-step project guide with screenshots is available to help you follow along from account creation to your first repository.
The folder contains 2 versions:
| Version | Language | Document |
|---|---|---|
| 🇬🇧 English | 01-ENG-commands-git.docx | Full Git commands reference with screenshots |
| 🇫🇷 Français | 01-FR-commandes-git.docx | Guide complet des commandes Git avec captures d'écran |
👉 Access the documentation on Google Drive
This document includes:
- How to create your GitHub account (with screenshots)
- Step-by-step project walkthrough
- All essential Git commands with examples
- Available in English and French
Section Objectives
- Understand the objectives and structure of the course
- Know the assessment criteria and grading
- Understand why version control is essential in modern development
- Identify the tools you will use throughout the course
The Problem Without Version Control
Imagine working on a web project for 3 weeks:
Without version control, you face:
- Folders full of files named
_v2,_final,_FINAL_REAL - No way to know what changed between two versions
- Impossible to work simultaneously with a colleague
- One wrong delete and your work is gone forever
- "It worked yesterday, what changed?" — impossible to answer
The Manual Approach (and why it fails)
| Problem | Manual Approach | Git Solution |
|---|---|---|
| Track changes | Copy files manually | Automatic commit history |
| Collaborate | Email files back and forth | Push/pull from shared remote |
| Undo a mistake | "I hope I have a backup..." | git revert or git reset |
| Multiple features | One folder per feature | One branch per feature |
| Know "who changed what" | Ask around | git blame and git log |
What is Version Control?
Version control (also called source control) is a system that records changes to files over time, so you can recall specific versions later.
Every commit is a snapshot of your project at a given moment. You can:
- Go back to any snapshot
- Compare two snapshots
- Work on multiple "parallel" versions (branches)
Why Git?
Git's Rise to Dominance
| Year | Event |
|---|---|
| 1991 | CVS (Concurrent Versions System) — first popular VCS |
| 2000 | SVN (Subversion) — centralized VCS, improves on CVS |
| 2005 | Git created by Linus Torvalds for Linux kernel development |
| 2008 | GitHub launched — makes Git collaborative |
| 2018 | Microsoft acquires GitHub for $7.5 billion |
| 2026 | Git used by 96% of professional developers |
Why Git Won
| Feature | SVN (Old) | Git (Modern) |
|---|---|---|
| Architecture | Centralized | Distributed |
| Speed | Slow (server required) | Fast (local operations) |
| Branching | Expensive, slow | Cheap, instant |
| Offline work | Impossible | Full capability |
| Merging | Complex, error-prone | Intelligent, powerful |
| Storage | Full copy per version | Efficient delta storage |
With Git, every developer has a complete copy of the repository on their machine, including the full history. This means you can work offline and only sync when you're ready.
Course Structure
Learning Path
Module Breakdown
| Module | Topic | Key Skills | Duration |
|---|---|---|---|
| 00 | Introduction | History, install, config, first repo | 3h |
| 01 | Fundamentals | Add, commit, log, diff, reset | 5h |
| 02 | Branches & Merge | Branch, merge, rebase, conflicts | 6h |
| 03 | GitHub & Remotes | Push, pull, clone, fork | 5h |
| 04 | Collaboration & PR | Pull Requests, workflows, reviews | 6h |
| 05 | Advanced Git | Stash, cherry-pick, hooks, submodules | 5h |
Teaching Methodology
The 3-Step Approach
For each concept, we follow the same cycle:
1. Why does this exist? (Problem → Solution) (10 min)
2. How does it work? (Theory + live demo) (20 min)
3. You try it! (Hands-on lab with guidance) (30-60 min)
Progressive Complexity
| Phase | Level | What You'll Do |
|---|---|---|
| Weeks 1-2 | Beginner | Your first commits and history |
| Weeks 2-3 | Intermediate | Branches, merges, conflict resolution |
| Weeks 3-4 | Intermediate+ | GitHub, remote collaboration |
| Weeks 4-5 | Advanced | PRs, code reviews, professional workflows |
| Week 6 | Expert | Advanced commands, automation, best practices |
Success Criteria
| Criterion | Description |
|---|---|
| Clean history | Readable commits with meaningful messages |
| Branch discipline | Correct branching and merging strategy |
| Collaboration | Effective use of Pull Requests |
| Conflict resolution | Ability to resolve merge conflicts |
| Workflow | Applying a consistent team workflow |
| Documentation | README and contribution guide |
Required Materials
Equipment
- Computer with any OS (Windows, macOS, Linux)
- Terminal (PowerShell, Terminal.app, bash)
- Stable internet connection
Software to Install
| Tool | Usage | Installation |
|---|---|---|
| Git | Core version control | git-scm.com |
| VS Code | Editor with Git integration | code.visualstudio.com |
| GitHub CLI | GitHub from the terminal | cli.github.com |
| Web browser | GitHub.com access | Chrome or Firefox |
GitHub Account
- Create a free account at github.com
- Choose a professional username (you'll share it with employers!)
- Set up your profile photo and bio (first impression matters)
Recommended VS Code Extensions
| Extension | Purpose |
|---|---|
| GitLens | Enhanced Git visualization in VS Code |
| Git Graph | Visual branch and commit graph |
| GitHub Pull Requests | Manage PRs directly in VS Code |
| Git History | Browse and search Git log |
Environment Setup Checklist
Before proceeding to the next lesson, verify your environment:
- Git is installed (
git --version) - VS Code is installed
- GitHub account is created
- GitHub CLI is installed (
gh --version) - Terminal is accessible
# Check Git installation
git --version
# Expected: git version 2.x.x
# Check GitHub CLI
gh --version
# Expected: gh version 2.x.x
# Check your Git config
git config --list