Cela m’arrive souvent: j’écris du code, je vérifie mes modifications et je me rends compte que je ne suis pas dans la bonne twig pour vérifier ces modifications. Cependant, je ne peux pas basculer vers une autre twig sans que mes modifications ne soient inversées. Existe-t-il un moyen de déplacer les modifications vers une autre twig à archiver?
git stash
est ton ami.
Si vous n’avez pas encore effectué le commit, lancez simplement git stash
. Cela permettra d’économiser tous vos changements.
Basculez vers la twig sur laquelle vous souhaitez que les modifications git stash pop
et exécutez la commande 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 n’avez pas encore commis vos modifications , utilisez simplement git checkout
pour passer à la nouvelle twig, puis validez-les normalement. Les modifications apscopes aux fichiers ne sont pas liées à une twig particulière tant que vous ne les avez pas validées .
Si vous avez déjà commis vos modifications:
git log
et rappelez-vous le SHA du commit que vous voulez déplacer. git cherry-pick SHA
remplaçant le SHA par le haut. git reset HEAD~1
pour réinitialiser avant que votre erreur de twig ne soit validée. cherry-pick
prend un commit donné et l’applique à la tête actuellement extraite, vous permettant ainsi de copier le commit sur une nouvelle twig.
Si vous souhaitez déplacer les modifications vers une nouvelle twig , vous pouvez le faire avec deux commandes seulement:
git stash git stash branch new-branch
Selon la documentation de git stash :
twig
twig
[ ]
[ ] Crée et extrait une nouvelle twig nommée
partir de la validation à laquelle le
a été créé, applique les modifications enregistrées dans le nouvel arbre de travail et l’index.
Malheureusement, cela m’arrive assez régulièrement et j’utilise git stash
si je réalisais mon erreur avant git commit
et que j’utilisais git cherry-pick
autrement, les deux commandes sont assez bien expliquées dans d’autres réponses
Je veux append une précision pour git checkout targetBranch
: cette commande ne conservera que votre répertoire de travail et votre snapshot par étapes si targetBranch a le même historique que votre twig actuelle.
Si vous n’avez pas encore commis vos modifications, utilisez simplement git checkout pour passer à la nouvelle twig , puis validez-les normalement.
L’instruction de @ Amber n’est pas fausse, lorsque vous passez à newBranch , git checkout -b newBranch
, un nouveau pointeur est créé et pointe exactement sur le même commit que votre twig actuelle.
En fait, si vous aviez une autre twig qui partage l’historique avec votre twig actuelle (les deux pointent sur le même commit), vous pouvez “déplacer vos modifications” par git checkout targetBranch
Cependant, des twigs généralement différentes signifient un historique différent, et Git ne vous permettra pas de basculer entre ces twigs avec un répertoire de travail ou une zone de transfert incorrects. dans ce cas, vous pouvez soit faire git checkout -f targetBranch
(changements propres et jetables) soit git stage
+ git checkout targetBranch
(nettoyer et sauvegarder les modifications), il suffit de git checkout targetBranch
pour donner une erreur:
erreur: vos modifications locales apscopes aux fichiers suivants seraient écrasées par la vérification: … Veuillez valider vos modifications ou les cacher avant de changer de twig. Abandonner