2013-02-07 81 views
2

需要說明。所以我在功能分支(讓我們稱之爲feature/feature1),提交併推送到遠程。分支模型:如何將分支完成的更改移至另一分支

git commit -m "commit feature1" 
git push origin feature/feature1 

然後,我開始一個新功能,但不是檢查出來的發展,拉動和創造新的特性分支,我繼續努力feature/feature1分支。

我不想放棄更改,我如何才能創建新分支並將所有新更改從feature/feature1分支移至新創建的分支?感謝名單。

回答

1

您可以使用rebase--onto參數將一些更改從一個分支移動到另一個分支。這裏有一個如何做到這一點的文檔中的一個例子,該部分與

這裏是你將如何基於一個分支移植到另外一個話題分支開始,假裝你從後者分叉的特性分支分支,使用rebase - 去。 ...

你的命令將可能看起來是這樣的:

git branch feature/feature2 
git reset --hard <sha1 of last commit of feature 1> 
git rebase --onto <where you want branch to start> feature/feature1 feature/feature2 
+0

嗨,'git分支-M feature/feature2'已經刪除了'feature/feature1'分支!這不是我所期待的。 – Malloc

+0

@Malloc它沒有刪除它,它重命名它。我添加了解釋發生了什麼。我也意識到wRAR在洗牌分支的方法可能更直接,所以我修改了我的原始答案以包含它。 – R0MANARMY

0

如果你想包含當前一個新的分支提交,你應該做的git branch newbranchname。這將創建一個新的分支,但不會改變舊分支。如果你想從舊分支中刪除新的提交,如果該分支尚未發佈,你可以檢出它,並做git reset --hard lastcommitid

相關問題