考慮一下:
* (master) Merge feature-branch into master
|\
| * (feature-branch) Fix a comment typo
| * Add comments
| * Add feature task 3
| * Consolidate feature tasks 1 and 2
| * Add feature task 2
| * Forgot a semi-colon
| * Add feature task 1
|/
* Older commit on master
與此:
* (master, feature-branch) Add feature
* Older commit on master
第一個是的feature-branch
一個(--no-FF)合併成master
,並且底部是南瓜/將feature-branch
重新拼寫到master
。首先是非常詳細的,這將使迴歸測試更加專注,但如果您有很多功能分支,將會變得雜亂無章。如果你有很多功能,第二個是更清晰的閱讀,但失去了分支定義。你自己的方法將取決於項目的大小,團隊的規模等。
個人而言,我使用將其他人關心這個提交經驗法則。下游沒有人關心例如我在評論中修正了一個錯字。我通常我把之前把第一個例子弄成這個樣子(與rebase -i
):
* (master) Merge feature-branch into master
|\
| * (feature-branch) Add feature task 3
| * Add feature task 2
| * Add feature task 1
|/
* Older commit on master
分支歷史中的相關內容仍然是明顯的,其餘的是壓扁。
考慮改寫你的問題來「重寫未發表的歷史」。重寫人們可能已經建立分支機構等的事情有更多的缺點,這在你的情況下似乎並不相關。 – ThiefMaster