我正在開發一個項目(單獨),併爲我開發的每個功能創建一個新分支,處理此功能,然後將其合併到主控中。所以通常我不會一次在兩個不同的分支上工作,並且在分支上工作時從不碰到主人。合併後的Git分支和提交歷史
當我合併一個分支時,我發現(使用gitx
和gitk
)master分支的歷史記錄獲取了我對合並分支所做的所有提交。我的意思是,如果我有這樣的:
master a-b-c-d
\z-x-y--
|branch name
合併後,我得到:
a-b-c-d-z-x-y
|branch name
是的,我看到了合併分支名高亮(使用gitx
和gitk
),但我所期待的是什麼確切表示將提交完成(到哪個分支),如:
master a-b-c-d--------M--
\-z-x-y-/
|branch name
所以我期待看到代表我對我所做的主人合併的提交「M」,沒有看起來我已經完成了對新分支所做的所有提交。
我的期望是否正確?或者這是正常的git
行爲?
合併功能分支時使用'--no-ff'有一些好處。主要的一點是它是一次性恢復退出功能。 –
非常感謝您提供有用的信息。 @Cameron能否請你解釋爲什麼不推薦這麼做?我可以「代表」我所有的舊合併? (這基本上是因爲我需要寫一個關於我的項目的報告,所以我的分支的截圖會有所幫助) – Ansd
@Ans:我不推薦它,因爲我從來沒有找到它的用處。我更願意保持'master'歷史儘可能簡單和線性,並且我從來不需要關心一個特徵分支被合併後。@丹Ray關於一次性恢復的觀點是有效的,但是,這可能是使用'no-ff'的一個很好的理由。您可能無法輕鬆地重新生成分支歷史記錄,但如果您仍然擁有所有舊分支,那麼您可以手動生成一個分支,將它們合併到「master」中的順序中合併所有功能。 –