2012-09-26 40 views
10

有沒有辦法在跳過另一個分支上的特定(衝突)提交時將分支重新綁定到另一個分支?如何跳過特定的提交時重新綁定?

例如,我想將mybranch重新編碼爲master,但master包含一個與master中的提交衝突的提交,所以我更願意完全撤消該提交。

-o-o-o-o-o-x-o-o-o-o master 
    | 
    o-o-o-o mybranch 

x標記衝突提交。

回答

23

使用互動的rebase:

git rebase -i master 

的編輯器將打開,你將有一個像這樣提交列表:

pick b8f7c25 Fix 1 
pick 273b0bb Fix 2 
pick 6aaea1b Fix 3 

只要刪除你想跳過提交。將分支重新分配到主設備時將被省略。

P.S.如果您看不到編輯器,請參考此問題的解決方案:How can I set up an editor to work with Git on Windows?

+0

編輯器僅顯示mybranch上的提交。有沒有辦法讓它顯示所有的提交;即從mybranch的尖端,到主人,直到主人的尖端? – Phillip

+1

是否要刪除分支或主服務器中的提交?第二種選擇,如果非常不安全並且會給所有其他擁有「master」作爲上游的開發者造成麻煩。 –

+0

我想跳過對主人的提交(我添加了一個圖表作爲我的問題的一部分)。我現在並不擔心上游的「master」。 – Phillip