GIT - 23 Sauvegarde du travail en cours avec le stockage

Dans cette leçon, on regarde le mécanisme de git stash : un moyen de mettre temporairement de côté du travail en cours sans avoir à committer. C'est extrêmement utile quand une interruption urgente arrive (bug à corriger, autre branche à dépanner) et qu'on a des modifications non terminées dans le working directory.

Je suis sur la branche master, working directory propre. Modifions coucou.html en ajoutant une phrase, sauvegardons. git status confirme un fichier modifié. Mais finalement, je réalise que je ne devrais pas modifier ça maintenant — peut-être que j'aurais dû créer une branche, ou bien je dois urgemment travailler sur autre chose.

Stasher le travail en cours

git stash
git stash list
git status
  • git stash : sauvegarde les modifications dans une « cachette » et restaure le working directory à l'état du dernier commit (HEAD)
  • git stash list : liste les stashes existants (par défaut nommés WIP on <branche>)
  • Le working directory est désormais propre, prêt pour autre chose

Travailler sur autre chose puis reprendre

On peut maintenant éditer venus.html pour traiter notre « interruption », committer normalement, puis revenir au stash :

# édition + commit de venus.html
git commit -am "v.3 troisième version"
git stash pop

git stash pop applique le dernier stash et le supprime de la liste. Les modifications précédemment mises de côté sur coucou.html sont restaurées dans le working directory. Un git stash list confirme qu'il n'y a plus de stash. Il ne reste plus qu'à committer pour finaliser : git commit -am "ajout coucou". Et voilà, working directory propre, tous les changements préservés.

En résumé

Cette leçon explique comment utiliser git stash pour sauvegarder temporairement les modifications en cours sans créer de commit. Elle détaille les commandes essentielles : git stash pour sauvegarder, git stash list pour lister les modifications sauvegardées, et git stash pop pour restaurer et réintégrer les changements. C'est une fonctionnalité idéale pour interrompre un travail et basculer rapidement sur une autre tâche.

Points clés

  • git stash sauvegarde les modifications en cours dans un stockage temporaire sans créer de commit, laissant le répertoire de travail propre
  • git stash list affiche tous les stashes disponibles avec le message du dernier commit associé à chaque sauvegarde
  • git stash pop applique les modifications sauvegardées et supprime le stash, tandis que git stash apply applique sans supprimer
  • Après l'application d'un stash avec pop, les modifications sont réintégrées dans les fichiers et le stash est supprimé de la liste
  • Utile pour abandonner temporairement un travail actuel afin de travailler sur une autre branche ou tâche prioritaire

Questions fréquentes

Comment sauvegarder temporairement des modifications en cours sans les commiter ?

Utilisez la commande git stash qui sauvegarde les modifications dans un stockage temporaire et laisse votre répertoire de travail propre.

Comment voir la liste des modifications sauvegardées avec git stash ?

Utilisez git stash list pour afficher tous les stashes avec le message du dernier commit associé à chaque sauvegarde.

Comment restaurer les modifications sauvegardées dans mon répertoire de travail ?

Utilisez git stash pop pour appliquer et supprimer automatiquement le dernier stash, ou git stash apply pour appliquer sans supprimer.