首页/开发/Git 与协作速查/git merge --no-ff 保留合并记录
合并变基与冲突71 条

git merge --no-ff 保留合并记录

强制生成合并提交,即使可以快进也保留分支拓扑,便于在历史中看出「某组提交作为一个特性」被整体合入;merge.ff=false 可设为默认。

Git 与协作速查开发更新于 2026-10-12
用途保留分支合并点,看到特性整体边界
语法git merge --no-ff -m '描述' <分支>
配置默认git config merge.ff false

常用示例

常用示例
git switch main
git merge --no-ff -m 'Merge feature/login' feature/login
git log --oneline --graph -15
合并提交的第二个父提交指向被合入分支的顶端,git log --first-parent 可只看主干主线提交。

易错点

  • 对长期存在的分支频繁制造合并提交会让历史噪声增大,团队需先约定在主干还是特性分支上做合并提交
  • --no-ff 与 --squash 语义不同:前者保留全部提交并加一个合并点,后者只把差异压成一次待提交改动

数据来源与参考

  • Git 官方文档:git-merge(--no-ff、merge.ff)
  • Pro Git 2nd Edition · 3.2 分支的新建与合并
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌