1

假设我们有这种情况:

       master
         |
A--B--B--D--E--F--G
                  |
                test

然后我们将 test 合并到 master 中。提交 E 和 F 是否保留在新的 master 分支中?

也就是说,它现在看起来像这样吗(选项 A):

                master
                  |
A--B--B--D--E--F--G
                  |
                test

或像这样(选项B):

          master
            |
A--B--B--D--G
            |
          test

抱歉,如果这已经被问过,我找不到它。此外,ProGit 书中的示例只有一个提交(在我的示例中是 E),它不能解决这样的情况。

4

3 回答 3

2

选项 A会发生什么:保留提交。在快进合并的情况下,历史根本不会被修改,只有master分支指向不同的提交。就这样。

于 2012-05-29T22:38:27.637 回答
1

你得到了一个快进合并(选项 A),开始的原因是因为在合并之前在 master 和 test 之间只有一行提交。如果 master 和 test 之间有一个分支,那将不再是快进合并。

我建议阅读这篇文章,以便对 git 中的分支和合并如何工作有一个很好的概述——你需要非常清楚地了解这些东西在使用 git 时是如何工作的。

于 2012-05-29T23:00:05.293 回答
1

选项A就是发生的事情。有时人们想要保留分支点,并会强制 git 创建一个新的合并提交。

git merge --no-ff test

这取决于您要遵循的开发工作流程。

于 2012-05-29T23:00:45.400 回答