假设我们有这种情况:
master
|
A--B--B--D--E--F--G
|
test
然后我们将测试合并到主节点中。提交 E 和 F 是否保留在新的主分支中?
也就是说,它现在是否像这样(选项 A):
master
|
A--B--B--D--E--F--G
|
test
或像这样(选项 B):
master
|
A--B--B--D--G
|
test
对不起,如果已经问过这个问题,我找不到它。此外,ProGit 书中的示例只有一个提交(在我的示例中是 E),这不能解决这样的情况。
会发生什么 选项 A:保留提交。在快进合并的情况下,历史记录根本不会被修改,只有master
分支指向不同的提交。就这样。
你会得到一个快进的合并(选项 A),开始的原因是因为在合并之前,主和测试之间只有一行提交。如果主节点和测试节点之间存在分支,则不再是快进合并。
我建议阅读本文以很好地概述 git 中的分支和合并工作原理 - 在使用 git 时,您需要非常清楚这些东西是如何工作的。
选项 A 是发生的事情。有时人们想要保留分支点,并会强制 git 创建新的合并提交。
git merge --no-ff test
这取决于要遵循的开发工作流。