首页/开发/Git 与协作速查/提交前检查冲突标记残留
合并变基与冲突71 条

提交前检查冲突标记残留

提交或推送前用 git diff --check 与检索方式扫出 <<<<<<< / >>>>>>> 残留,避免把冲突标记提交进仓库。

Git 与协作速查开发更新于 2026-10-13

冲突标记检查是什么

冲突标记残留是最容易溜进仓库的低级事故:解决冲突时删漏一行,尖括号标记就跟着提交上去了,轻则让代码无法编译,重则让配置在运行期报出莫名其妙的错。提交或推送前用 git diff --check 扫一遍暂存与工作区差异,能同时提示冲突标记与行尾空白;再用全库检索兜住历史遗留,必要时在 CI 里加一步失败即中断的检查。

基本信息

快速检查git diff --check 提示冲突标记与空白错误
全文检索git grep -n '^<<<<<<<' 扫已跟踪文件
CI 兜底流水线中加一步失败即中断的扫描
覆盖范围diff --check 只看差异,历史遗留需另扫
平台任意 Git 客户端与 CI 系统

典型使用场景

  • 解决完冲突提交前的例行自检
  • 改完配置合并后确认没有残留标记
  • CI 流水线上做统一兜底,防止标记合入主干
  • 代码评审时快速判断提交是否清理干净
  • 排查构建突然报语法错误,怀疑是标记残留导致
  • 把检查写进提交钩子,让问题在本地就被拦下

常用示例

常用示例
git diff --check                        # 检查差异里的标记与空白问题
git diff --cached --check               # 只检查已暂存内容
git grep -n '^<<<<<<<' -- . || true     # 全库检索我方标记
git grep -n '^>>>>>>>' -- . || true     # 全库检索对方标记
git add -p && git diff --cached --check # 暂存后再确认一次

检查手段对比

手段覆盖范围
diff --check工作区与暂存区的差异
git grep指定提交或工作区的已跟踪文件
CI 脚本整个仓库,作为最后一道兜底
git diff --check 还会提示行尾空白等格式问题,提交前跑一遍成本极低、收益直接。
标记文本也可能出现在示例文档或测试夹具里,扫描规则要允许必要的例外,避免把正常内容当成残留。

易错点

  • 只检查暂存或工作区差异,历史遗留的标记扫不到,需要用 git grep 全量检索
  • 扫描规则写得太宽会误报示例文档,写得太窄又会漏掉缩进变形的标记,找到平衡后固定成脚本
  • 只靠人工肉眼检查,几百行冲突处理完几乎必然漏看,用命令兜底更可靠
  • 把检查放在 CI 却设成警告不中断,问题仍会合入主干,做成硬性失败才有效
  • 解冲突后忘记移除自己临时插入的分隔注释,肉眼看着干净但工具之外仍可能残留其他标记形式

数据来源与参考

  • Git 官方文档:git-diff(--check)
  • Git 官方文档:git-grep
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌