title: « Leçon 1 — Qu’est-ce que Git ? »
description: « Comprendre les concepts fondamentaux du contrôle de version avec Git. »
taxonomy:
doc_category: Categorie-A
—
## 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
« `bash
# 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
