Git:ffwd合并会保留所有主题分支提交吗?

时间:2012-05-29 22:31:27

标签: git merge commit preserve fast-forward

说我们遇到这种情况:

       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),这不会解决这种情况。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您获得了快进合并(选项A),并且开始的原因是因为在合并之前master和test之间只有一行提交。如果master和test之间存在分支,则不再是快进合并。

我建议阅读this以获得关于如何在git中进行分支和合并的一个很好的概述 - 你需要非常清楚这些东西在使用git时是如何工作的。

答案 2 :(得分:1)

选项A就是这样。有时人们希望保留分支点并强制git创建新的合并提交。

git merge --no-ff test

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