Versioning avec Git & GitHub · Étape 03

Observe les changements et prépare précisément l’index

Lis status et diff, distingue fichiers suivis et non suivis, puis sélectionne exactement le contenu du prochain commit.

Durée indicative · ~1 h 25Niveau débutantPrérequis conseillé · Leçon 2 — installation, configuration et initialisationPratique · TP
L’idée reçue

« git add sauvegarde définitivement le fichier. »

git add prépare une version dans l’index. Seul le commit inscrit un snapshot dans l’historique.

01Lis status avant toute action

cd /tmp/soria-git-foundations-$USER/starter
git status
git status --short --branch

Le status détaillé explique les catégories. Le format court est adapté au contrôle fréquent et aux scripts, mais il faut comprendre ses deux colonnes : index puis working tree.

02Compare le working tree

git diff
git diff -- README.md
git diff --stat

git diff sans option compare le working tree à l’index. Il montre ce qui n’est pas encore préparé pour le prochain commit.

03Stage un seul objectif

git add README.md
git status --short
git diff
git diff --cached

Après staging, la modification du README disparaît de git diff et apparaît dans git diff –cached. Le fichier d’observations reste non suivi.

04Provoque un commit vide

git restore --staged README.md
git commit -m "docs: explain workflow" || true

Git refuse normalement le commit car l’index est vide. Cette erreur montre que le working tree modifié ne suffit pas : le commit utilise l’index.

05Restaure l’index sans perdre le fichier

git add README.md
git restore --staged README.md
git status --short
git diff -- README.md

git restore –staged retire la version de l’index mais conserve la modification dans le working tree.

06Ajoute une portion interactive

git add -p README.md
git diff --cached
git diff

Le mode patch permet de séparer plusieurs intentions présentes dans le même fichier. Utilise ? dans l’interface pour afficher les commandes disponibles.

07Vérifie le secret ignoré

git status --ignored --short
git check-ignore -v .env
git ls-files .env

Le fichier .env doit être ignoré et absent de git ls-files. Ignorer empêche le suivi futur ; cela ne retire pas un secret déjà commité.

Challenge autonome

Prépare deux commits sans les créer

Sépare la modification du README et le fichier d’observations en deux snapshots successifs. Pour chacun, fournis git status –short et git diff –cached comme preuve.

Ce que tu retiens

L’index est une zone de sélection. Status indique les états, diff montre les écarts et add prépare exactement le prochain snapshot.

Ta progression

Chargement de l’état… Se connecter pour synchroniser.