冲突标记检查是什么
冲突标记残留是最容易溜进仓库的低级事故:解决冲突时删漏一行,尖括号标记就跟着提交上去了,轻则让代码无法编译,重则让配置在运行期报出莫名其妙的错。提交或推送前用 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 还会提示行尾空白等格式问题,提交前跑一遍成本极低、收益直接。
标记文本也可能出现在示例文档或测试夹具里,扫描规则要允许必要的例外,避免把正常内容当成残留。