2014-01-29 122 views
2

我知道如何從git rebase --interactive中刪除git歷史記錄中的特定提交。刪除具有多個分支的git歷史記錄中的特定提交?

我的問題涉及到更復雜的情況下,有這樣的歷史:

A--X--B--C--D 
     \ 
     E--F 

,我想刪除提交X。問題是在這種情況下,有兩個或兩個以上的家長分支(B在這種情況下)有X他們的歷史,所以一個git rebase -i不會做的伎倆(至少我不知道如何)。

有沒有一種簡單的方法可以刪除X,還是我必須依靠重新綁定所有分支(可能使用shell腳本)?

回答

3

不幸的是Git在這種情況下並不容易。首先刪去承諾X.做的d分支的互動變基

你有以下病史:

A--X--B 
\  \ 
    \  E--F 
    \ 
    B'-C'-D' 

然後你需要重訂在F分支到B」有:

git rebase --onto B' B F 

(替代由自己的IDS提交的名稱)

這將結束與

A--B'-C'-D' 
    \ 
     E'--F' 
相關問題