我當時在分支「Feature」工作。
所以我的git樹是:如何在分支中的git中將2個提交合併爲1?
master
A<--B<--C<--D<--F<--G
|<--E
Feature
我想獲得所有最新的高手在特性分支工作一段時間,所以我所做的:
git checkout Feature
git rebase master
在底墊我在一個有合併衝突文件和手動解決衝突期間,我犯了一個錯誤,我後來意識到,而不是在運行之前git rebase --continue
所以我結束了一棵樹如下:
master
A<--B<--C<--D<--F<--G<--E
Feature
然後我意識到我的錯誤實際上破壞了E中的構建。
我糾正了我的錯誤(尚未提交)並繼續工作,但我不想在功能中進行2次提交,最終將以主和其中一個提交是一個不好的提交。
此外,我想結束我在Feature中主要分支的一次提交。
所以,如果我有:
master
A<--B<--C<--D<--F<--G<--E<--H
Feature
我如何結合E和H成一次提交,這樣,當我做的:
git checkout master
git rebase feature
我只有1在我的主人犯? 注意:分支功能是本地功能,如果它很重要,則不會被推送。
也許不相關,但我必須問:**爲什麼?** VCS的缺點是您可以查看誰在什麼時間以及爲什麼執行了什麼操作。如果你有系統地重寫你的歷史,那有什麼意義?爲什麼不使用tarball來管理源代碼?那麼如果有兩個或更多的提交可見,那是因爲有幾個提交...你爲什麼要隱藏這個提交? –
@EliasVanOotegem:由於手動/編輯錯誤,提交的歷史記錄很糟糕,這有什麼意義? – Jim
我寧願有一個錯誤的提交比完全重新發布的修訂歷史記錄...我真的重視一個乾淨的提交日誌 –