« 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é.
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.