Git – travailler sur une mauvaise twig – comment copier les modifications sur une twig existante

J’ai travaillé sur un projet, mais malheureusement, j’ai oublié de passer dans ma twig et, en tant que tel, j’ai travaillé sur master

Comment puis-je copier le travail (3 fichiers) que j’ai effectué ici de master, vers ma twig (appelée, par exemple, branch123 ) sans avoir à maisortingser?

On dirait que tout ce dont vous avez besoin est le suivant:

git stash git checkout branch123 git stash apply 

Ensuite, vous devriez être de retour sur votre propre twig sans toucher à la twig principale.

C’est une vieille question mais c’est au sumt de Google de “travailler sur la mauvaise twig”. Je pense qu’une meilleure réponse est de simplement vérifier la succursale sur laquelle vous voulez travailler. Pas besoin de ranger quoi que ce soit:

 git checkout branch123 

Le comportement par défaut de la checkout est de NE PAS écraser les fichiers modifiés dans votre répertoire de travail, afin de ne rien perdre. Basé sur ce que j’ai trouvé ici .

Edit: cette méthode ne fonctionnera que si les fichiers que vous avez modifiés dans le répertoire de travail sont identiques dans master et branch123 . Jefromi a en fait souligné cela dans les commentaires sur la réponse acceptée, mais je n’ai pas compris ce qu’il disait la première fois que je l’ai lu.

git stash est ce dont vous avez besoin.

une explication complète peut être trouvée dans Git-Tools-Stashing

Comme il est possible de créer une nouvelle twig mais que vous ne pouvez pas extraire une twig existante tout en ayant des fichiers extraits, j’ai trouvé l’astuce suivante en utilisant une twig temporaire pour travailler:

Ce scénario fonctionne au moins avec le plug-in VS 2015 de Git mais fonctionnera probablement avec n’importe quel outil git.

  1. vérification et apporter des modifications aux fichiers dans master (ups !, mauvaise twig)
  2. créer une nouvelle twig “temp” (ou tout nom inutilisé que vous choisissez) de master. Les fichiers extraits seront désormais extraits dans temp et non dans master.
  3. vérifier les changements de temp (master est intact)
  4. Tout est maintenant archivé et il est possible d’extraire une twig existante. Découvrez la twig désirée (la twig pour laquelle je voulais apporter les modifications pour commencer) 3.5 Git Rebase
  5. fusionner temp à la twig voulue. Maintenant, les modifications sont dans la bonne twig.
  6. supprimer la twig temp car elle n’est plus nécessaire

EDIT: J’ai découvert que vous devrez effectuer un rebase (git rebase –onto) de la twig temp avant d’effectuer la fusion. Sinon, les modifications apscopes à master seront incluses dans la fusion. Une étape supplémentaire 3.5 ci-dessus. Voir plus loin sur rebase ici: https://git-scm.com/book/en/v2/Git-Branching-Rebasing

Dans Vidual Studio 2017 (et éventuellement les versions antérieures), ouvrez Console du gestionnaire de paquets et tapez:

 git stash 

Cela stockera vos modifications (un peu comme une étagère dans TFS) et vous permettra de changer de twig ou d’en créer une nouvelle. Lorsque vous avez la bonne twig active, tapez:

 git stash apply 

Pour que vos modifications soient appliquées à la nouvelle succursale. Enfin vous tapez:

 git stash drop 

Cela laissera tomber vos dernières informations de stash.