Git Stash : le cache utile de Git

Git Stash permet de mettre en cache ses modifications sans les commiter directement. Il est aussi possible d’utiliser plusieurs stashs (ou stocks) dans un même projet.

Nom de domaine
Votre domaine en un clic
  • Domaine .eu ou .fr + éditeur de site gratuit pendant 6 mois
  • 1 certificat SSL Wildcard par contrat
  • Boîte email de 2 Go

Git Stash, c’est quoi ?

En règle générale, voici comment se déroulent les processus de travail dans Git : les modifications sont faites dans le dépôt local et testées de bout en bout avant d’être commitées dans la branche principale. Cependant, le travail ne se déroule pas toujours de manière aussi linéaire. Tout en travaillant sur un projet, il se peut que vous ayez à basculer sur une autre branche avant d’avoir pu terminer les changements dans la branche en cours. Dans ce cas, mieux vaut ne pas commiter car les modifications non validées seraient ajoutées, de quoi créer la confusion. La solution est de passer par Git Stash : cette commande enregistre les modifications en cours, qui restent à votre disposition.

Cela inclut toutes les modifications qui n’ont pas encore été commitées. Si vous souhaitez ensuite revenir sur ces fichiers, il vous suffit de les récupérer dans le Git Stash et de terminer les modifications. Ainsi, les changements effectués ne sont pas perdus, votre travail est conservé et vous pouvez même continuer à travailler sur d’autres points de manière flexible. Sans Git Stash, c’est l’assurance de recevoir un message d’erreur lors d’un Git Checkout, voire de perdre des modifications importantes.

Git Stash : syntaxe et fonctionnement

Git Stash fonctionne donc comme une sorte de mémoire tampon pour votre branche actuelle. Sa syntaxe de base est la suivante :

git stash

Nous allons voir son fonctionnement étape par étape avec un exemple simple. Imaginez que vous êtes en train de travailler sur deux branches et que vous modifiez la première. Au même moment, votre équipe vous indique que quelque chose doit aussi être modifié dans la deuxième branche. Avec Git Stash, voici comment faire pour basculer :

  1. Enregistrez les modifications de la première branche ;
  2. Utilisez la commande « git stash » ;
  3. Passez à la deuxième branche et effectuez les modifications nécessaires ;
  4. Validez vos modifications dans la deuxième branche ;
  5. Revenez à la première branche ;
  6. Utilisez la commande « git stash pop » pour récupérer les changements enregistrés.

Autres options de Git Stash

En plus de sa syntaxe de base vue ci-dessus, Git Stash se laisse paramétrer avec divers arguments. Voici les plus importants :

git stash -u Prend aussi en compte les fichiers non suivis
git stash -a Inclut aussi les fichiers ignorés ou non suivis
git stash -p Permet de sélectionner et d’analyser uniquement certains fichiers

Lister les stashs

La commande Git Stash n’a pas de limite : il est possible de l’utiliser plusieurs fois et stocker (ou stasher) ainsi de nombreuses étapes de travail. Vous pouvez aussi lister vos Git Stashs pour garder un bon aperçu de votre mémoire. Voici la commande :

git stash list

Les entrées s’affichent alors dans l’ordre antichronologique, le dernier Git Stash apparaissant ainsi en premier.

Normalement, les différents stashs sont simplement indiqués en « WIP » (pour Work in progress). Avec plusieurs Git Stashs, cela peut vite devenir confus. Il est alors recommandé d’ajouter une description aux différents stashs. Voici la commande correspondante :

git stash save "Votre description"

Git Stash pop et apply

La commande « git stash pop » permet de sélectionner et d’afficher à nouveau le dernier Git Stash. Il est aussi possible de revenir à un autre état de mémoire avec un argument. Par exemple, si vous souhaitez afficher le deuxième Git Stash, définissez la valeur sur 1 (le compte se fait à partir de zéro) :

git stash pop stash@{1}

Au lieu de « pop », vous pouvez utiliser « apply » : quand « pop » efface le Git Stash donné du cache en le remettant dans la branche actuelle, « apply » le conserve en mémoire.

Nettoyer le Git Stash

C’est justement parce que vous avez l’option de créer plusieurs Git Stashs qu’il est important de nettoyer le Git Stash de temps en temps, afin que le cache ne devienne pas trop confus. Pour cela, il existe deux commandes :

git stash clear

Cette commande vide entièrement le Git Stash.

Si vous ne souhaitez supprimer qu’un stash en particulier de la liste, voici comment faire :

git stash drop <stash_id></stash_id>

Consulter les Git Stashs

Vous obtenez le résumé de votre Git Stash avec la commande suivante :

git stash show

Pour afficher un aperçu supplémentaire du diff complet, utilisez cette commande :

git stash show -p

Un outil très utile pour le travail dans Git

Git Stash facilite le travail sur les projets en veillant à conserver même les modifications non terminées. Vous trouverez d’autres commandes utiles dans notre article sur les commandes Git. Pour une utilisation régulière du logiciel de contrôle de versions, nous vous recommandons aussi la très pratique Git Cheat Sheet avec PDF à télécharger.

Conseil

Deploy Now de IONOS est LA solution pour la mise en ligne de vos sites Web et applications ! Elle inclut une installation rapide et un flux de travail optimisé avec une évolutivité optimale. Choisissez l’offre qui vous convient parmi nos différents packs !

Cet article vous a-t-il été utile ?
Page top