2012-05-31 62 views
1

引用我有以下情況:刪除了一堆重複的承諾和混帳

A---B--- ... ---E---------------------------. 
              \ 
        A---B--- ... ---E---F---G---H---I--- ... ---N master 

我想刪除從歷史的重複提交和刪除此錯誤引用。

A---B--- ... ---E---F---G---H---I--- ... ---N master 

我和git rebase -i嘗試過了,刪除重複的承諾,但是這一次的結果複製到提交了很多的合併衝突。

+0

wouw,那些線條確實看起來像平滑彎曲:P +1 – KurzedMetal

+0

你能解釋一下你的意思是「rebase使它變得更糟」嗎?如果你想做你說的話,你將不得不重寫所有的東西, E包括HIJ(即使你不改變他們的內容,他們也不得不改變他們的父母)。你無法逃避這一切。我不知道你怎麼知道這一點。 – KurzedMetal

+0

我已更正圖表,謝謝。 – Fu86

回答

1

你可以試試:

 
git checkout -b temp E 
git cherry-pick F..N 
git branch -D master 
git branch -m temp master 

如果你不明白你在做什麼,我建議你閱讀有關的所有命令的手冊頁。 git manpages非常好,可以訪問。

+0

我在圖中犯了一些錯誤。問題是,有很多提交,不僅是'F G H I J'和櫻桃挑選不能處理一系列的提交。 – Fu86

+0

你可以挑選一系列的提交。參見:http://stackoverflow.com/questions/1994463/how-to-cherry-pick-a-range-of-commits-and-merge-into-another-branch – Artefact2