Aller au contenu principal

Prise en main de Git — Chapitre 2 / 4

Le cycle fondamental

Git fonctionne avec 3 zones et quelques commandes. Ce chapitre t'apprend à maîtriser le cycle complet. Du fichier modifié au commit enregistré.

Chapitre 2 / 4

Étape 01 / 10

Les 3 zones de Git

Avant d'apprendre les commandes, il faut bien comprendre les 3 zones dans lesquelles tes fichiers circulent. Chaque commande Git déplace des fichiers d'une zone à l'autre.

Zone 1 : Working Directory (ton bureau)

C'est le dossier sur ton ordinateur. Tu y crées, modifies et supprimes des fichiers comme d'habitude. Git observe ce dossier, mais ne sauvegarde rien tant que tu ne le lui demandes pas.

L'analogie

C'est ton bureau physique : tu y travailles, tu poses des feuilles, tu griffonnes. Rien n'est archivé tant que tu ne le ranges pas.

Zone 2 : Staging Area (l'enveloppe)

C'est une zone intermédiaire où tu prépares ce qui ira dans le prochain commit. Tu choisis précisément quels fichiers (ou quelles modifications) tu veux sauvegarder.

L'analogie

C'est une enveloppe ouverte sur ton bureau. Tu y places les documents que tu veux envoyer. Tant que tu ne l'as pas scellée (commit), tu peux encore ajouter ou retirer des documents.

Zone 3 : Repository (l'armoire d'archives)

C'est l'historique complet de ton projet, stocké dans le dossier caché .git. Chaque commit est un snapshot permanent et immuable.

L'analogie

C'est l'armoire d'archives : une fois un document classé, il y reste pour toujours. Tu peux le consulter à tout moment, mais tu ne le modifies pas.

1

Working Directory → git add → Staging Area → git commit → Repository

Étape 02 / 10

git status : voir où tu en es

Concept

git status affiche l'état de tes fichiers dans les 3 zones. C'est ta boussole dans Git.

git status te montre 3 catégories de fichiers :

  • En vert (Changes to be committed) — fichiers dans la Staging Area, prêts pour le commit
  • En rouge (Changes not staged for commit) — fichiers modifiés mais pas encore ajoutés à la Staging Area
  • Untracked files — nouveaux fichiers que Git ne connaît pas encore

$ git status

On branch main

Changes to be committed:
  new file:   about.html

Changes not staged for commit:
  modified:   index.html

Untracked files:
  style.css

Étape 03 / 10

git diff : voir ce qui a changé

Concept

git diff affiche les différences ligne par ligne entre deux versions d'un fichier.

Par défaut, git diff compare le Working Directory à la Staging Area (ce qui a changé mais n'est pas encore indexé) :

$ git diff

--- a/readme.md
+++ b/readme.md
@@ -1,3 +1,4 @@
 # Mon projet

-Description courte
+Description détaillée du projet
+Ajout d'une ligne

Les lignes qui commencent par + sont les ajouts (en vert). Les lignes qui commencent par - sont les suppressions (en rouge). Le reste est le contexte.

Pour voir ce qui est dans la Staging Area (ce qui sera commité) :

$ git diff --staged

À pratiquer

Bonne pratique : lance toujours git diff --staged avant de commiter pour vérifier exactement ce qui sera enregistré.

Étape 04 / 10

git add : préparer ses fichiers

Concept

git add déplace des fichiers du Working Directory vers la Staging Area. C'est l'étape de préparation avant le commit.

Ajouter un fichier spécifique :

$ git add readme.md

Ajouter tous les fichiers modifiés et nouveaux :

$ git add .

Attention

Attention avec git add . — il ajoute TOUS les fichiers modifiés et non suivis du dossier courant. Vérifie toujours avec git status avant, pour ne pas inclure des fichiers indésirables.

Quelle commande prépare un fichier pour le prochain commit (staging) ?

Étape 05 / 10

git commit : sauvegarder

Concept

git commit prend tout ce qui est dans la Staging Area et crée un snapshot permanent dans l'historique.

$ git commit -m "Ajouter la page À propos"

[main a1b2c3d] Ajouter la page À propos
 1 file changed, 12 insertions(+)

À pratiquer

Bonne pratique : un commit = une action logique. Écris un message clair à l'impératif.

  • Bon : "Ajouter la validation du formulaire"
  • Bon : "Corriger le bug d'affichage sur mobile"
  • Mauvais : "fix" (trop vague)
  • Mauvais : "Modifications diverses" (pas informatif)

Étape 06 / 10

git restore : annuler des changements

Concept

git restore annule des modifications dans le Working Directory ou retire des fichiers de la Staging Area.

Annuler les modifications d'un fichier dans le Working Directory (revenir à la version du dernier commit) :

$ git restore index.html

Attention

Attention : git restore est irréversible pour les fichiers non commités ! Les modifications perdues ne peuvent pas être récupérées.

Retirer un fichier de la Staging Area (le "désindexer") sans perdre les modifications :

$ git restore --staged index.html

Le fichier retourne dans l'état "modifié mais pas indexé". Tes modifications sont toujours là.

« git restore sur un fichier modifié mais non commité est réversible. » Vrai ou faux ?

Étape 07 / 10

Résumé : le cycle complet

1

1. Tu modifies des fichiers (Working Directory)

2

2. Tu vérifies l'état avec git status

3

3. Tu regardes les changements avec git diff

4

4. Tu prépares les fichiers avec git add

5

5. Tu enregistres le snapshot avec git commit

git status
Voir l'état de tes fichiers
git add
Préparer un fichier (staging)
git commit
Enregistrer un snapshot
git restore
Annuler des modifications

Étape 08 / 10

Erreurs fréquentes

  • git commit -am ne prend pas en compte les fichiers non suivis (untracked). Les nouveaux fichiers doivent être ajoutés avec git add d'abord.
  • Oublier git add avant git commit — le commit sera vide ou incomplet si les fichiers ne sont pas dans la Staging Area.
  • Faire des commits géants avec plein de modifications — préfère des petits commits ciblés, un par action logique.

Étape 09 / 10

Pour aller plus loin

  • Aide-mémoire Git — les commandes essentielles sur une page
  • Annuler un commit — comment revenir en arrière proprement
  • Simulateur Git — pratiquer les commandes dans un environnement interactif

Étape 10 / 10

Teste tes connaissances

Avant de passer aux exercices, vérifie que tu as bien assimilé le cycle Git. Clique sur la réponse qui te semble correcte.

Quiz — Chapitre 2

1. Quel est le rôle de la staging area ?

2. Que fait git restore --staged readme.md ?

3. Quelle est la différence entre git diff et git diff --staged ?

4. Pourquoi git commit -am ne suffit-il pas toujours ?

Ton avis compte

Aide-nous à améliorer cette formation en partageant ton retour.

Pour qu'on puisse te répondre si besoin.