Leçon 1 — Qu’est-ce que Git ?

Un peu d’histoire

Git a été créé en 2005 par Linus Torvalds, le créateur du noyau Linux. Face aux limitations des outils existants, il a conçu un système de contrôle de version :

  • Distribué — chaque développeur possède une copie complète de l’historique
  • Rapide — les opérations sont effectuées localement
  • Fiable — l’intégrité des données est garantie par des sommes de contrôle SHA-1

Pourquoi utiliser Git ?

Sans Git Avec Git
projet_v1.zip, projet_v2_final.zip, projet_v2_VRAIMENT_final.zip Un historique clair et structuré
Pas de traçabilité des modifications Chaque changement est documenté
Collaboration difficile Travail en équipe simplifié
Risque de perte de données Sauvegarde distribuée

Les concepts clés

Le dépôt (repository)

Un dépôt est un dossier dont Git suit les modifications. Il contient :

  • Vos fichiers de travail
  • Un dossier caché .git/ qui stocke tout l’historique

Les trois zones de Git

┌─────────────────┐     git add     ┌─────────────────┐    git commit    ┌─────────────────┐
│  Working Dir    │ ──────────────► │  Staging Area   │ ──────────────► │   Repository    │
│  (vos fichiers) │                 │  (index)        │                 │   (historique)  │
└─────────────────┘                 └─────────────────┘                 └─────────────────┘
  1. Working Directory — votre dossier de travail avec les fichiers modifiés
  2. Staging Area (index) — zone de préparation avant un commit
  3. Repository — l’historique complet de votre projet

Le commit

Un commit est un instantané (snapshot) de votre projet à un instant donné. Chaque commit contient :

  • Les modifications effectuées
  • Un message descriptif
  • Un identifiant unique (hash SHA-1)
  • Une référence vers le commit parent
# Exemple d'un premier commit
git add .
git commit -m "Initial commit : ajout de la structure du projet"

Résumé

  • Git est un système de contrôle de version distribué
  • Il permet de suivre l’historique de chaque modification
  • Les trois zones (Working Dir → Staging → Repository) forment le flux de travail de base