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 !

J'espère que cet article vous aura été utile, et à bientôt sur le blog !

Les articles les plus populaires du blog

Envie de continuer à lire des articles autour du développement web (entre autres) ? Voici la sélection des articles de mon blog les plus lus par la communauté !

Voir la sélection 🚀

Recevez les articles de la semaine par e-mail pour ne rien manquer !

S'abonner à la newsletter 📧

À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage d'expériences et de connaissances.

Aujourd'hui je suis aussi coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et être tenu au courant de mes projets !


Photo par Steve Johnson sur Unsplash