git合并后将分支的提交历史记录保留在git日志图中

kla*_*aus 4 git merge git-merge

测试用例:

                 A---B---C topic
                /
           D---E master
Run Code Online (Sandbox Code Playgroud)

如果我做

git checkout master
git merge topic
Run Code Online (Sandbox Code Playgroud)

我去拿


               D---E---A---B---C master,topic
Run Code Online (Sandbox Code Playgroud)

我如何合并,以便提交图保持如下所示

                     A---B---C topic
                    /         \
               D---E-----------F master
Run Code Online (Sandbox Code Playgroud)

Rom*_*eri 6

对于一键式方法,您可以执行

git merge topic --no-ff
Run Code Online (Sandbox Code Playgroud)

它将强制执行合并提交(请参阅doc)。


但也请注意,如果您需要将其作为常规工作流的一部分存储在仓库中,则可以在配置中将其设置即使在可能的情况下也永远不会进行快速合并,方法如下:

git config merge.ff false
Run Code Online (Sandbox Code Playgroud)