首页/开发/Git 与协作速查/避免「暗改式」合并提交
合并变基与冲突71 条

避免「暗改式」合并提交

合并冲突时常有人顺手夹带无关改动(业内称 evil merge),这类内容不体现在任一方提交里,评审与 bisect 都难以发现。

Git 与协作速查开发更新于 2026-10-12
风险合并提交里的额外改动没有独立提交记录
自查git show <merge-commit> 查看合并引入的差异
规范冲突解决只保留必要内容,无关修复拆成独立提交

检查合并提交实际差异

检查合并提交实际差异
git show --first-parent --stat <merge_sha>
git range-diff main..feature main..merged-feature 2>/dev/null || true
对合并提交做评审时,重点看 git show 的差异是否等于两侧提交的并集;多出来的一律要求拆分说明。

易错点

  • git show 默认对合并提交走 combined diff,可能不做完整展示,需要 --first-parent 或指定父提交对照
  • 把冲突解决之外的改动混进合并提交会让 revert 与二分排查都变困难

数据来源与参考

  • Git 官方文档:git-show(合并提交显示规则)
  • Git 官方文档:git-range-diff
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌