Déplacement des fichiers modifiés vers une autre twig pour l’enregistrement

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:

  1. Tapez git log et rappelez-vous le SHA du commit que vous voulez déplacer.
  2. Découvrez la twig vers laquelle vous souhaitez déplacer le commit.
  3. Tapez git cherry-pick SHA remplaçant le SHA par le haut.
  4. Revenez à votre twig d’origine.
  5. Utilisez 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