2011-10-21 148 views
16

我在主分支上進行了一系列提交之後做出了一系列提交,事後看來我應該在另一個分支中做出提示。我可以將這些提交(從一個特定的提交開始)移動到另一個分支,並將最好的提交作爲最後一次提交到master嗎?Git:將提交從主控移動到另一個分支

+0

可能的重複[將最近的提交(s)移動到一個新的分支與Git](http://stackoverflow.com/questions/1628563/move-the-most-recent-commits-to-a -new-branch-with-git) –

回答

25

肯定的:

$ git branch new-branch-name      # Create a new branch from the current commit 
$ git reset --hard <last good commit on master> # Reset master to the good commit 
+0

這很簡單。謝謝! –

+0

所以如果我想從主到另一個分支去掉最後兩個提交。我檢查master的最後一次提交,從那裏創建一個分支,然後重置master HEAD〜2?這不會也刪除分支提交?這是否意味着只要主指針現在指向兩個提交,提交不會被刪除?這是重置剛纔移動分支指針一些提交? – croraf

+0

@croraf:分支仍然會指向前兩個提交給master的提交。 – mipadi

1

是的,就可以了,這將是2個獨立的操作

複製從一個分支到你想要的分支提交他們是:

git cherry-pick <hash_of_commit> --onto <target_branch> 

然後修復主人分支恢復到良好的提交:

git checkout master 
git reset --hard <hash_of_good_commit> 
相關問題