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 !
Aucun commentaire pour l'instant