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是同一笔提交。

相关推荐
摆烂且佛系12 分钟前
win10 Git Bash安装make命令
git
xuanzdhc2 小时前
Gitgit
java·linux·运维·服务器·c++·git
一点事13 小时前
git:通过令牌方式访问远程仓库
git
或非与15 小时前
windows版本git代码自动更新
git
这是个栗子15 小时前
git报错:‘git‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
git
小生不才yz15 小时前
(二)日常工作流 - git rm 命令的使用
git
inferno15 小时前
TortoiseGit下载与安装
git
取名真是15 小时前
Git 到底是干啥的?零基础小白听完都懂了并且轻松驾驭它
git
AA陈超18 小时前
Git常用命令大全及使用指南
笔记·git·学习
无限进步_18 小时前
C语言数组元素删除算法详解:从基础实现到性能优化
c语言·开发语言·windows·git·算法·github·visual studio