Saltar al contenido principal

Course Overview

Week 1 1 hour

📁 Supplementary Documentation & Resources

Step-by-step project with screenshots

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:

VersionLanguageDocument
🇬🇧 English01-ENG-commands-git.docxFull Git commands reference with screenshots
🇫🇷 Français01-FR-commandes-git.docxGuide 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)

ProblemManual ApproachGit Solution
Track changesCopy files manuallyAutomatic commit history
CollaborateEmail files back and forthPush/pull from shared remote
Undo a mistake"I hope I have a backup..."git revert or git reset
Multiple featuresOne folder per featureOne branch per feature
Know "who changed what"Ask aroundgit 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

YearEvent
1991CVS (Concurrent Versions System) — first popular VCS
2000SVN (Subversion) — centralized VCS, improves on CVS
2005Git created by Linus Torvalds for Linux kernel development
2008GitHub launched — makes Git collaborative
2018Microsoft acquires GitHub for $7.5 billion
2026Git used by 96% of professional developers

Why Git Won

FeatureSVN (Old)Git (Modern)
ArchitectureCentralizedDistributed
SpeedSlow (server required)Fast (local operations)
BranchingExpensive, slowCheap, instant
Offline workImpossibleFull capability
MergingComplex, error-proneIntelligent, powerful
StorageFull copy per versionEfficient delta storage
Git is distributed

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

ModuleTopicKey SkillsDuration
00IntroductionHistory, install, config, first repo3h
01FundamentalsAdd, commit, log, diff, reset5h
02Branches & MergeBranch, merge, rebase, conflicts6h
03GitHub & RemotesPush, pull, clone, fork5h
04Collaboration & PRPull Requests, workflows, reviews6h
05Advanced GitStash, cherry-pick, hooks, submodules5h

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

PhaseLevelWhat You'll Do
Weeks 1-2BeginnerYour first commits and history
Weeks 2-3IntermediateBranches, merges, conflict resolution
Weeks 3-4Intermediate+GitHub, remote collaboration
Weeks 4-5AdvancedPRs, code reviews, professional workflows
Week 6ExpertAdvanced commands, automation, best practices

Success Criteria

CriterionDescription
Clean historyReadable commits with meaningful messages
Branch disciplineCorrect branching and merging strategy
CollaborationEffective use of Pull Requests
Conflict resolutionAbility to resolve merge conflicts
WorkflowApplying a consistent team workflow
DocumentationREADME and contribution guide

Required Materials

Equipment

  • Computer with any OS (Windows, macOS, Linux)
  • Terminal (PowerShell, Terminal.app, bash)
  • Stable internet connection

Software to Install

ToolUsageInstallation
GitCore version controlgit-scm.com
VS CodeEditor with Git integrationcode.visualstudio.com
GitHub CLIGitHub from the terminalcli.github.com
Web browserGitHub.com accessChrome 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)
ExtensionPurpose
GitLensEnhanced Git visualization in VS Code
Git GraphVisual branch and commit graph
GitHub Pull RequestsManage PRs directly in VS Code
Git HistoryBrowse 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
Quick Verification
# 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

Next Steps