Comment mettre du code de côté avec Git ?

Besoin de sauvegarder du code en cours de conception pour plus tard ? Voici la commande miracle !

Article publié le 19/10/2021, dernière mise à jour le 22/09/2023

Passer d'une branche Git à une autre lorsque le travail est terminé, c'est facile. Mais alors comment sauvegarder du travail en cours, sans faire un commit "poubelle" ou sans risquer de perdre du code déjà rédigé ?

Deux solutions

Solution 1 : git stash (recommandée)

Le "stash" est une liste de modifications sauvegardées en dehors du flux de travail classique, et pouvant être restauré plus tard, comme ceci :

##code non sauvegardé
git stash ##code mis de côté
git stash pop ##code restauré
git commit ...
##code sauvegardé

La commande pop permet de restaurer le dernier élément sauvegardé dans le stash, mais vous pouvez lister toutes les éléments du stash avec la commande ci-dessous :

git stash list ##Liste des "archives" présentes dans le stash

Il existe beaucoup de "sous-commandes" pour git stash, je vous invite à consulter la documentation officielle pour les découvrir.

Solution 2 : git commit --amend

Je vous ai présenté l'option --amend de git commit afin de pouvoir renommer vos derniers commits dans un précédent article, mais cette option est en réalité beaucoup plus puissante !

L'option --amend permet en réalité de modifier entièrement votre dernier commit, ce qui signifie que vous pouvez le renommer, mais également changer son contenu. Vous l'aurez compris, tant que vous ne l'envoyez pas sur un dépôt distant, votre dernier commit peut vous servir "d'archive" de code :

##code non sauvegardé
git commit -am "[WIP] - signup feature not working" ##code sauvegardé en local
## ... travail sur une autre branche puis retour ...
git commit --amend -am "[FEAT] - signup feature working" ##commit mis à jour
git push origin ...
##code envoyé

Contrairement à git stash, votre travail en cours reste lié à votre branche actuelle (le stash est global au dépôt), et vous pouvez même ajouter un message pour indiquer la nature du travail en cours (votre message de commit temporaire).

Mais attention, le risque est d'envoyer du code incomplet sur le dépôt distant en cas de mauvaise manipulation !

Conclusion

Les commandes git stash et git stash pop ont justement été créées dans ce but, mettre de côté du code en cours de rédaction afin de le réappliquer plus tard !


Steve Johnson sur Unsplash

Vous avez terminé l'article ?

Commentaires (0)

pour laisser un commentaire

Aucun commentaire pour l'instant