Git -> git merge --no-ff 和 git merge的区别

git merge --no-ff <branch>git merge <branch> 的区别

核心区别

git merge <branch>:

  • 默认使用Fast-forward模式(若可行)
  • 不创建额外的合并提交记录
  • 合并后看不出曾经存在过分支
    git merge --no-ff <branch>:
  • 强制创建一个新的合并提交
  • 即使可以Fast-forward也会生成合并记录
  • 保留完整的分支历史信息

合并前 (两种方式相同的初始状态)

bash 复制代码
     A---B---C (master)
         \
          D---E (branch)

Fast-forward模式合并后 (git merge)

bash 复制代码
 A---B---C---D---E (master)

No Fast-forward模式合并后 (git merge --no-ff)

bash 复制代码
 A---B---C-------M (master)
     \           /
      D---------E

选择建议: 临时分支用默认模式,重要功能分支用--no-ff以保留历史。

注:图中A、B、C、D、E分别代表不同的提交。B是从A创建分支的共同起点,而不是BD是同一笔提交。

相关推荐
zzqssliu3 小时前
煤炉自动代拍系统的队列设计与超时控制机制
git·github
一支绝命钩3 小时前
FPGA工程Git常用操作手册
git
不搞学术柒柒7 小时前
Git新功能完整开发提交流程
git
午安~婉11 小时前
Git中SSH连接
前端·git·gitee
888CC++12 小时前
VS Code Git 工作树:解锁多分支并行开发新体验
git
阿虎儿12 小时前
Git exclude 功能解析
git
隔窗听雨眠13 小时前
VS Code Git工作树:多分支并行开发的完整实践方案
git
^yi14 小时前
【Linux系统编程】快速上手git仓库管理,核心三板斧
git
郝同学今天有进步吗15 小时前
构建 LangGraph Code Review Agent(四):文件过滤与 AnalysisPackage 分包
git·python·ai·code review
胖大和尚1 天前
git本地实现local->remote推送
git