2016-01-20 118 views
1

我很難試圖擠壓這些過多的提交。 當我運行git log --pretty=oneline,以下項目出現在下面的順序:如何刪除合併分支和壓縮提交

e44e012 Merge branch 'branch A' of https://github.com/ into branch A 4176991 Commit D 767583f Commit C f5a4c21 Commit B 83bb8e1 Commit A

我想這些擠進一個承諾,擺脫提交合並。當我運行git rebase -i HEAD~2時,出現提交A-D,但提交合並不顯示。任何想法爲什麼?當我嘗試運行git rebase -i HEAD~5時,我得到提交A-D以及其他一些提交,但合併提交仍然不顯示爲壓扁選項。

* e44e012 Merge branch 'Branch A' of https://github.com/ into Branch A |\ | * 767583f Commit C | * f5a4c21 Commit B | * 83bb8e1 Commit A * | 4176991 Commit D |/

+0

讓我們[在聊天中繼續討論](http://chat.stackoverflow.com/rooms/101147/discussion-between-tim-biegeleisen-and-brosef)。 –

+0

評論不適用於擴展討論;這個對話已經[轉移到聊天](http://chat.stackoverflow.com/rooms/101310/discussion-on-question-by-brosef-how-to-delete-a-merge-branch-and-squash-提交)。 –

回答

1

打字git rebase -i HEAD~5應該告訴你類似下面的列表:仔細

pick 83bb8e1 Commit A 
pick f5a4c21 Commit B 
pick 767583f Commit C 
pick 4176991 Commit D 
pick e44e012 Merge branch 'branch A' of https://github.com/ into branch A 

注意,最古老承諾將出現在列表中,這是反向的頂部git log向您展示的順序。

如果你想壓制該合併提交,連同提交b至d成犯,然後更改文件看起來像這樣:

pick 83bb8e1 Commit A 
squash f5a4c21 Commit B 
squash 767583f Commit C 
squash 4176991 Commit D 
squash e44e012 Merge branch 'branch A' of https://github.com/ into branch A 

保存文件,關閉它,然後鍵入git rebase --continue完成rebase。

+0

我試過了,但合併分支出於某種原因沒有出現。 – Brosef

+0

哦......你想保留合併提交嗎? –