Installation
Travailler avec git
Logiciels
Source Tree
19 min
Ungit
09 min
Github Mac
08 min
GitKraken
13 min

Git a changé notre façon de coder à plusieurs. Mais certaines contraintes dues à la nature d'un projet ou la répartition des rôles dans une équipe nous oblige parfois à arrêter le travail en cours et passer une autre branche, ce qui entraîne un commit inévitable. Cela peut s'avérer gênant, car on se retrouve avec des comits ne correspondant à rien et rendant le projet instable. Heureusement, Guite a pensé à tout en mettant en place un système de remisage qui va vous permettre de stocker temporairement les modifications que vous avez effectuées pour pouvoir les réhabiliter plus tard (ceci permettra d'éviter des commit avec des messages du style "Fix du bug de l'an 2000 in progress").

git stash

Imaginons, vous avez des modifications en cours de création et vous avez envie de les mettre de côté temporairement, plutôt que de commit les différentes modifications vous alliez les stocker grâce au remisage.

git stash

Cette commande va mettre de côté toutes les modifications qui ont été apportées au projet depuis le dernier commit (si vous faites la commande git status vous verrez alors qu'il n'y a plus de fichiers en attente de modifications). Vous pouvez alors continuer à travailler sur autre chose (faire vos commits de manière traditionnelle) et ré appliquer plus tard ces modifications avec la commande :

git stash apply

Il est possible de voir l'ensemble des stash sauvegardés avec

git stash list

Vous verrez au passage que le dernier remisage que vous avez fait est toujours présent. En effet, lorsque vous appliquez les modifications, Git ne supprime pas automatiquement ce que vous avez sauvegardé.Si vous souhaitez supprimer le dernier stash qui a été effectué il faudra alors taper la commande :

git stash drop

enfin il est possible de combiner les commandes apply et drop en utilisant la commande pop

 git stash pop
 # équivaut à 
 git stash apply
 git stash drop

Stash multiple

Il est possible d'avoir plusieurs stash stockés en mémoire. Pour lister l'ensemble des éléments qui se situent dans votre remisage il vous faudra taper la commande :

git stash list
# stash@{0}: WIP on master: 04f9aed Fix effets spéciaux
# stash@{1}: WIP on master: a25d951 Lorem ipsum dolores

Pour appliquer la remise stash@{1} (c'est pas beau ce nom ?) :

git stash apply stash@{1}

Je ne vous le cache pas, il arrive souvent qu'on ne sache plus à quoi correspond tel ou tel stash, heureusement il est possible d'avoir plus de détails sur le contenu d'un stash.

git stash show stash@{1} -p

Une autre bonne pratique est de nommer ses stashs

git stash save "J'ai tout cassé"

Voilà ! Vous savez tout ce qu'il y a savoir sur le remisage sur Git. C'est une commande méconnue qui va vous permettre de vous sortir de pas mal de situations épineuses et qui vous permet d'éviter des commit "forcés". Si vous souhaitez avoir plus d'informations sur les possibilités de cette commande (l'ensemble des commandes disponibles, mais aussi leurs options) vous pouvez consulter la documentation.