Mise en attente des modifications
Maintenant que notre espace de travail est configuré, créons quelques modifications et apprenons à les mettre en attente (stash).
Tout d'abord, apportons quelques modifications à notre fichier README.md :
echo "This is a work in progress" >> README.md
Cette commande ajoute une nouvelle ligne à notre fichier README.md. Créons également un nouveau fichier :
echo "Some important notes" > notes.txt
Maintenant, si nous exécutons git status
, nous verrons que nous avons à la fois des fichiers modifiés et des fichiers non suivis (untracked) :
git status
Vous devriez voir un résultat indiquant que README.md est modifié et que notes.txt n'est pas suivi.
Imaginez que vous deviez rapidement passer à une autre tâche, mais que vous n'êtes pas prêt à valider (commit) ces modifications. C'est là que git stash
devient utile!
Pour mettre vos modifications en attente, exécutez :
git stash
Vous devriez voir un résultat similaire à ceci :
Saved working directory and index state WIP on master: 1234567 Initial commit
Maintenant, si vous exécutez git status
à nouveau, vous verrez quelque chose d'intéressant :
git status
Vous remarquerez que tandis que README.md n'est plus affiché comme modifié, notes.txt est toujours répertorié comme un fichier non suivi. Voici un point crucial concernant git stash
:
Important : Par défaut, git stash
ne met en attente que :
- Les modifications apportées aux fichiers suivis (les fichiers que Git suit déjà)
- Les modifications préparées (staged)
Les fichiers non suivis (comme notre notes.txt) ne sont pas inclus dans la pile d'états (stash) par défaut. Ce comportement garantit que Git ne cache pas accidentellement de nouveaux fichiers que vous pourriez ne pas vouloir inclure dans le dépôt.
Si vous souhaitez inclure les fichiers non suivis dans votre pile d'états, vous pouvez utiliser l'option -u
(ou --include-untracked
) :
git stash -u
Après avoir exécuté cette commande, à la fois les modifications apportées à README.md et le nouveau fichier notes.txt seront mis en attente.
Pour voir ce qui se trouve dans votre pile d'états, vous pouvez utiliser :
git stash list
Vous devriez voir une ou deux entrées dans la pile d'états, selon que vous avez utilisé l'option -u
ou non.
Appuyez sur q
pour quitter la vue de la liste des états mis en attente.
N'oubliez pas que la mise en attente des modifications est parfaite pour les changements rapides de contexte. Cependant, ce n'est pas un remplacement pour les commits dans votre flux de travail à long terme. Les états mis en attente sont destinés à être des stockages temporaires.