511fd30cc6
用户裁定:文档只写现状,历史流水一律删掉,过程查 git log。 - 43 篇「变更记录 / 修订记录」整节删除:继电保护规划 12.6 KB、产品 需求 11.8 KB、项目部署环境 5.5 KB、BSD Socket 指南 5.3 KB、架构 总览 5.0 KB、实机测试实施指南 3.8 KB 等 - 23 篇别处仍有指向:只留节名 + 一行「本文件不再记流水账,过程查 git log」,节号与锚点不位移(doc-links 不因此断链) - 5 篇整表保留(被当唯一证据 / 活台账引用):看门狗设计说明、配置 文件设计说明、RAM预算台账、内容页架构、本地工具路径环境变量方案 - 规范同步:文档规范 §5.1 改新裁定;测试文档模板规范删示例节与 登记句;测试开发标准流程 / UI 两篇 / 实机测试实施指南 / 四篇单测 说明 / 并行任务工作树方案 / 编号规范 的「登记变更记录」改「写进 正文」 - 技能同步:stale-doc-count-sweep / ui-verify / id-family 三个 SKILL 正文不再要求追加流水行(顺带消掉 SKILL.md:121「产品需求 §12」 失效引用) - 修 5 处悬空指针:采样有效性校验目录锚点、BSD 指南「文末变更 记录」、docs/README 过期描述、网络自愈架构两处指向面 72 篇文档净减 600 余行;check_doc_links --all --sections-strict 可判 定比例 61% → 78%、失效引用 0;静态门禁 passed=50 failed=0;gitlint 10 条历史提交信息 0 failed。 未提交他人在飞改动:.dsh/skills/keil-build/*(%SystemDrive% 守卫)。
1.9 KiB
1.9 KiB
check-merge-conflict — 别把没解完的冲突标记提上去
一句话:文件里还留着
<<<<<<</=======/>>>>>>>这类行首冲突标记就拦。
- 配置:官方
pre-commit-hooksv5.0.0,无额外参数。
1. 它在查什么
- 行首的冲突标记形态(7 个小于号 / 等号 / 大于号 / 竖线组合),以及
.rej、.orig这类补丁残留文件。
2. 为什么要它
- 冲突标记留在代码里常常照样编得过(落在注释里、或被条件编译包住),只在运行时或下一个 人才发现——所以这条便宜且值。
3. 触发面 / 看不见什么
- 只看本次提交涉及的文件;已提交的历史冲突不追。
- 不看语义冲突(两边各加一个函数、逻辑互相矛盾):那是人与测试的活。
4. 报错怎么读
check for merge conflicts................................................Failed
App/x/y.c
- 解完冲突再提交。若你是在文档里演示冲突标记,本门禁没有局部豁免:把示例写成非行首形态
(缩进进代码块、或用占位描述),必要时
--no-verify并在提交说明里写清为什么。
5. 好处
- 挡住"顺手
git add .把半解状态一起提交"的常见事故。
6. 限制与盲区
- 判据是行首标记形态:本仓注释里的分隔线(
// =====、# =====)因为带前缀字符不会误报, 但真放在行首的 7 连等号(ASCII 表格线、Markdown 里手写标题下划线)会被判成冲突标记; - 只认标准标记:某些合并工具/编辑器的自定义残留形态不一定被认;
- 语义冲突、跨文件不一致(改签名没改调用点)完全不在能力范围(后者由编译器与单测负责)。
7. 豁免与基线 / 8. 改这个门禁本身
- 无基线。要演示冲突标记,改写法(不放行首)比改门禁或放宽更合适。