我正在开发一个项目(单独),对于我开发的每个功能,我创建了一个新的分支,处理这个功能,然后将它合并到master.所以通常我一次不会在两个不同的分支上工作,而在分支机构工作时从不接触主人.
当我合并一个分支时,我看到(使用gitx
和gitk
)master分支的历史记录获得了我对合并分支所做的所有提交.我的意思是,如果我有类似的东西:
master a-b-c-d
\z-x-y--
|branch name
Run Code Online (Sandbox Code Playgroud)
合并后我得到:
a-b-c-d-z-x-y
|branch name
Run Code Online (Sandbox Code Playgroud)
是的,我看到合并的分支名称突出显示(使用gitx
和gitk
),但我期待的是显示提交完成的位置(到哪个分支),如:
master a-b-c-d--------M--
\-z-x-y-/
|branch name
Run Code Online (Sandbox Code Playgroud)
所以我期待看到提交"M"代表我已经完成的合并,而不是看起来我已经完成了对新分支所做的所有提交.
我的期望是否正确?或者这是正常git
行为?
Cam*_*ner 30
这是正常的Git行为.您正在进行所谓的"快进"合并,因为您的分支严格地位于master
分支之前.
如果你真的想保留分支历史记录(虽然我建议你不要打扰),那么你可以使用git merge --no-ff
它来强制它创建一个合并提交,即使它可以进行快进更新.
你可以在" 理解Git工作流 "中找到对-no-ff选项的额外批评,主要是因为它会破坏git blame
.
更多的" 快进当使用pull
和no-ff
时pull
".
正如" 为什么git默认使用快进合并? "中所解释的那样,除非你谈论的是一个非常长寿的分支,否则快进合并更可取.
归档时间: |
|
查看次数: |
17138 次 |
最近记录: |