Cela m’arrive souvent: j’écris du code, j’enregistre mes modifications, puis j’aperçois que je ne suis pas dans la branche appropriée pour archiver ces modifications. Cependant, je ne peux pas changer de branche sans que mes modifications soient inversées. Existe-t-il un moyen de transférer les modifications dans une autre branche pour y être enregistrées?
Réponses
Trop de publicités? git stash
est votre ami.
Si vous n'avez pas encore fait le commit, lancez git stash
. Cela évitera toutes vos modifications.
Basculez vers la branche sur laquelle vous souhaitez effectuer les modifications et exécutez git stash pop
.
Il y a beaucoup d'utilisations pour Git Stash. C'est certainement l'une des raisons les plus utiles.
Un exemple:
# work on some code
git stash
git checkout correct-branch
git stash pop
Si vous ne l'avez pas déjà engagés vos modifications, il suffit d'utiliser git checkout
pour passer à la nouvelle branche et puis les valider normalement - les modifications apportées aux fichiers ne sont pas liés à une branche particulière jusqu'à ce que vous vous engagez.
Si vous avez déjà engagés vos modifications:
- Type
git log
et n'oubliez pas le SHA de la validation que vous souhaitez déplacer. - Découvrez la branche que vous souhaitez déplacer la livraison.
- Type
git cherry-pick SHA
la substitution de la SHA à partir de ci-dessus. - Revenir à l'original de votre branche.
- Utiliser
git reset HEAD~1
pour remettre avant votre mal-direction de la commettre.
cherry-pick
prend une validation donnée et l'applique à l'extrait en tête, ce qui vous permet de copier le commettre à une nouvelle branche.