[英]Git branches & commits history after merge
我正在開發一個項目(單獨),對於我開發的每個功能,我創建了一個新的分支,處理這個功能,然后將它合並到master。 所以通常我一次不會在兩個不同的分支上工作,而是在分支機構工作時從不接觸主人。
當我合並一個分支時,我看到(使用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
行為?
這是正常的Git行為。 您正在進行所謂的“快進”合並,因為您的分支嚴格地位於master
分支之前。
如果你真的想保留分支歷史(雖然我建議你不要打擾),那么你可以使用git merge --no-ff
強制它創建一個合並提交,即使它可以進行快進更新。
您可以在“ 了解Git工作流 ”中找到對-no-ff選項的額外批評,主要是因為它會破壞git blame
。
“更多的使用快進時pull
並no-ff
時pull
”。
正如“ 為什么git默認使用快進合並? ”中所解釋的那樣,除非你談論的是一個非常長壽的分支,否則快進合並更可取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.