2017-02-12 2 views
2

Il y a quelques jours, j'ai créé une nouvelle branche git en utilisant:Comment faire un git branche le nouveau maître?

git checkout -b release-1_5 

Depuis la création de cette nouvelle branche, j'ai apporté des modifications supplémentaires & lie à lui. Je suis le seul développeur, et aucun changement n'a été apporté au «maître» actuel entre-temps. Je veux faire l'état actuel de la branche « release-1_5 » le nouveau maître, et faire « maître » de la nouvelle branche de travail (HEAD?), De sorte que si je fais plus tard quelque chose comme:

git checkout -b release-1_6 

il va créer une nouvelle branche qui se sépare du maître

Je sais que je pourrais probablement continuer à faire "git checkout -b {new-branche-name}" (créer une branche linéaire d'une branche (-of- a-branch [-...]), mais je suis à peu près sûr que ça gâcherait le diagramme de branche de Git:

Si ça compte, pour l'instant, le repo est entièrement local, donc il n'y a pas de pulling/poussant ou d'origine à s'inquiéter abo Utah.

Répondre

3

Vous décrivez une simple fusion de release-1_5 sur master. Comme master n'a pas de nouveaux commits, il s'agira d'une fusion rapide.

$ git checkout master 
$ git merge release-1_5 

Et c'est tout. Vous pouvez éventuellement supprimer la branche release-1_5 après cela si vous le souhaitez.

1

Je ne voudrais pas jouer avec la suppression de branches.
Ce que vous voulez faire est de simplement déplacer le dernier commit du release-1_5 au master.

git checkout master 
git merge release-1_5 
git checkout master 
git reset --hard HEAD~3 # Go back 3 commits. You *will* lose uncommitted work. 
0

Hope this helps

git checkout release-1_5 
git merge --strategy=ours master # This will keep content of branch 
git checkout master 
git merge release-1_5    # this will fast-forward master to the merge