我有一個git倉庫有兩個分支,master
和amazing_new_feature
。後者的分支包含了一個令人驚歎的新功能。同事和我都在同一個存儲庫上工作,我們兩個都致力於這兩個分支。如何在多個步驟中重寫已發佈的git分支的歷史記錄?
現在關於令人驚歎的新功能的工作已經完成,並且在amazing_new_feature
分支中累積了超過100次的提交。在將工作合併到主服務器之前,我想先清理那些提交(使用git rebase -i
)。
我們面臨的問題是,一次改寫/重新排序所有100個提交是相當痛苦的。相反,我想要做的是:
- 重寫/合併/重新排序
amazing_new_feature
分支的第幾次提交,並把結果加入到含有「清理」歷史上的一個專用分支(比如,amazing_new_feature_ready_for_merge
分支)。 - 將其餘的
amazing_new_feature
分支重新編入amazing_new_feature_ready_for_merge
分支。 - 重複在1
我的想法是,在某些時候,一切從amazing_new_feature
工作應在amazing_new_feature_ready_for_merge
,然後我可以將後者合併爲master
。
這是一個明智的方法,還是有更好/更容易/更愚蠢的教練解決這個問題?我特別害怕上述算法的第二步,因爲它意味着重新定義已發佈的分支。 IIRC這是一件危險的事情。