1. 问题

git merge branch 没有产生新的提交信息,而是直接将 dev branch 的提交信息直接迁移过去。如何才能 merge branch 的时候,产生一次新的提交呢?

2. 原因

为什么直接 merge 没有产生一次新的提交呢?

如果我们的祖先分支以 master 为例,再 checkout 一个新的分支(bugfix)后,产生了新的提交,与此同时,其他的开发分支没有往 master 合并新的提交

这样,新的分支与 master 分支的最新提交历史是共同的祖先

此时,merge bugfix 分支后, master 拥有 bugfix 全部的提交,所以当合并到master 分支后,master 的 HEAD 会直接指向最新的 bugfix 提交历史上。不会产生新的提交。git 采用的模式即称为 fast-forward 模式(快进模式)

3. 解决方案

在合并的时候,我们可以禁用 fast-forward 这种合并策略即可。操作指令如下:

# --no-ff 即 no-fast-forward 禁用快进模式
$ git merge hotfix --no-ff
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐