Git Stash permet de mettre en cache ses mo­di­fi­ca­tions sans les commiter di­rec­te­ment. Il est aussi possible d’utiliser plusieurs stashs (ou stocks) dans un même projet.

Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée

Git Stash, c’est quoi ?

En règle générale, voici comment se déroulent les processus de travail dans Git : les mo­di­fi­ca­tions sont faites dans le dépôt local et testées de bout en bout avant d’être commitées dans la branche prin­ci­pale. Cependant, le travail ne se déroule pas toujours de manière aussi linéaire. Tout en tra­vail­lant sur un projet, il se peut que vous ayez à basculer sur une autre branche avant d’avoir pu terminer les chan­ge­ments dans la branche en cours. Dans ce cas, mieux vaut ne pas commiter car les mo­di­fi­ca­tions non validées seraient ajoutées, de quoi créer la confusion. La solution est de passer par Git Stash : cette commande en­re­gistre les mo­di­fi­ca­tions en cours, qui restent à votre dis­po­si­tion.

Cela inclut toutes les mo­di­fi­ca­tions 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 mo­di­fi­ca­tions. Ainsi, les chan­ge­ments effectués ne sont pas perdus, votre travail est conservé et vous pouvez même continuer à tra­vail­ler 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 mo­di­fi­ca­tions im­por­tantes.

Git Stash : syntaxe et fonc­tion­ne­ment

Git Stash fonc­tionne 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 fonc­tion­ne­ment étape par étape avec un exemple simple. Imaginez que vous êtes en train de tra­vail­ler 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. En­re­gis­trez les mo­di­fi­ca­tions de la première branche ;
  2. Utilisez la commande « git stash » ;
  3. Passez à la deuxième branche et effectuez les mo­di­fi­ca­tions né­ces­saires ;
  4. Validez vos mo­di­fi­ca­tions dans la deuxième branche ;
  5. Revenez à la première branche ;
  6. Utilisez la commande « git stash pop » pour récupérer les chan­ge­ments en­re­gis­trés.

Autres options de Git Stash

En plus de sa syntaxe de base vue ci-dessus, Git Stash se laisse pa­ra­mé­trer avec divers arguments. Voici les plus im­por­tants :

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é­lec­tion­ner et d’analyser uni­que­ment 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 nom­breuses é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 an­ti­chro­no­lo­gique, le dernier Git Stash ap­pa­rais­sant ainsi en premier.

Nor­ma­le­ment, les dif­fé­rents stashs sont sim­ple­ment indiqués en « WIP » (pour Work in progress). Avec plusieurs Git Stashs, cela peut vite devenir confus. Il est alors re­com­mandé d’ajouter une des­crip­tion aux dif­fé­rents stashs. Voici la commande cor­res­pon­dante :

git stash save "Votre description"

Git Stash pop et apply

La commande « git stash pop » permet de sé­lec­tion­ner 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é­fi­nis­sez 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 en­tiè­re­ment le Git Stash.

Si vous ne souhaitez supprimer qu’un stash en par­ti­cu­lier 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 sup­plé­men­taire 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 mo­di­fi­ca­tions non terminées. Vous trouverez d’autres commandes utiles dans notre article sur les commandes Git. Pour une uti­li­sa­tion régulière du logiciel de contrôle de versions, nous vous re­com­man­dons aussi la très pratique Git Cheat Sheet avec PDF à té­lé­char­ger.

Conseil

Deploy Now de IONOS est LA solution pour la mise en ligne de vos sites Web et ap­pli­ca­tions ! Elle inclut une ins­tal­la­tion rapide et un flux de travail optimisé avec une évo­lu­ti­vité optimale. Choi­sis­sez l’offre qui vous convient parmi nos dif­fé­rents packs !

Aller au menu principal