1064 votes

Git - créez une branche avec les changements en cours

J’ai commencé à travailler sur ma branche master pensant que ma tâche serait facile. Après un certain temps j’ai réalisé qu’il serait prendre plus de travail et je veux faire tout ce travail dans une nouvelle branche.

Alors, comment puis-je créer une nouvelle branche et prendre tous ces changements avec moi sans souillure maître ?

Merci

858voto

VonC Points 414372

Si vous n'aviez pas fait de commettre encore, seulement (1: branche) et (3: la caisse) serait suffisant.
Ou, en une seule commande: git checkout -b newBranch.

Comme mentionné dans l' git reset page de man:

$ git branch topic/wip     (1)
$ git reset --hard HEAD~3  (2)
$ git checkout topic/wip   (3)
  1. Vous avez fait quelques révisions, mais se rendent compte qu'ils ont été prématuré d'être dans le "master" de la branche. Vous voulez continuer à polir dans une rubrique de la branche, afin de créer "topic/wip" branche de l'actuel HEAD.
  2. Rembobiner l' master de la branche de se débarrasser de ces trois commits.
  3. Le passage à "topic/wip" de la branche et continuer à travailler.

Remarque: en raison de la "destruction" de l'effet d'un git reset --hard commande (il ne réinitialise l'index et de l'arbre de travail. Toute modification des dossiers dans l'arbre de travail depuis <commit> sont rejetés), je préfère aller avec un:

$ git reset --soft HEAD~3 (2)

, pour m'assurer que je ne suis pas de perdre des fichiers privé (pas ajoutés à l'index).
L' --soft option de ne pas toucher au fichier d'index ni de l'arbre de travail (mais réinitialise la tête de <commit>, comme tous les modes).

341voto

EeKay Points 1785

Comme indiqué dans cette question: Git: Créer une branche à partir de changements non marqués / non validés sur master : stash n'est pas nécessaire.

Utilisez juste:

git checkout -b topic/newbranch

Tout travail non engagé sera acheminé à la nouvelle succursale.

102voto

Cube Points 388

Suivez ces étapes:

  1. Créer une nouvelle branche:

     git branch newfeature
     
  2. Commander une nouvelle succursale: (ceci ne réinitialisera pas votre travail.)

     git checkout newfeature
     
  3. Maintenant, engagez votre travail sur cette nouvelle branche:

     git commit -s
     

En utilisant les étapes ci-dessus gardera votre branche d'origine propre et vous n'avez pas à faire 'git reset --hard'.

37voto

Ether Points 34103

Puisque vous n'avez encore effectué aucun commit, vous pouvez enregistrer toutes vos modifications dans la cachette, créer et basculer vers une nouvelle branche, puis replacer ces modifications dans votre arborescence de travail:

 git stash push
git checkout -b topic/newbranch
git stash pop
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X