Git 操作安全

Git 是 Claude Code 任务交付的最后一道门。不要让 CC 在没有确认的情况下重置、提交、推送或清理改动。

默认禁止

Git 操作是最后一道门。CC 可以帮你检查 Git 状态、总结 diff、生成提交信息,但默认不应该替你提交、推送或丢弃改动。

Git 安全的核心原则:CC 可以帮忙“判断”,但关键动作要先确认。尤其是会丢内容、改历史、影响远程仓库的操作,不能自动执行。

动作默认策略
查看状态、查看 diff可以让 CC 做
生成提交信息可以让 CC 做
暂存文件需要明确文件清单
提交建议人工确认后执行
推送必须确认远程和分支
reset、clean、force push默认禁止

提交前检查模板

请做提交前检查,但不要提交 Git。

要求:
1. 检查当前 Git 状态。
2. 列出本次修改文件。
3. 判断是否有无关文件变化。
4. 检查是否包含密钥、Token、隐私信息。
5. 回顾任务验收是否完成。
6. 如果适合提交,生成一条不夸大的提交说明。

先确认工作区是不是干净

如果开始任务前工作区已经有改动,要先问清楚:

请先只读检查当前 Git 工作区,不要修改文件。

请判断:
1. 工作区是否已经有未提交改动。
2. 这些改动看起来是否和当前任务相关。
3. 哪些文件需要我人工确认。
4. 在确认前是否应该暂停新任务。

不要在不清楚旧改动来源时继续开发。否则最后很难分清哪些是本次任务,哪些是之前留下的。

先让 CC 看状态

请只读检查 Git 状态,不要修改文件,不要提交。

请输出:
1. 当前有哪些已修改文件。
2. 哪些文件和本次任务相关。
3. 哪些文件需要我人工确认。
4. 是否有新增文件、删除文件、重命名文件。
5. 是否有敏感信息风险。
6. 是否建议先运行 /verify 或 /code-review。

看到危险 Git 操作时

不要执行这个 Git 操作。

请先解释:
1. 这个操作会影响哪些文件或提交。
2. 是否会丢失未提交内容。
3. 有没有只读检查方式。
4. 有没有更低风险的替代方案。

等确认后再继续。

常见危险操作

看到危险操作时,不要只看命令短不短,要看后果:

命令类型风险
reset / checkout 覆盖未提交内容可能丢失
clean 删除未跟踪文件可能被删除
force push远程历史可能被改写
rebase提交顺序和哈希会变化
commit -a没确认的文件可能一起进提交

拆提交怎么判断

一个提交最好只做一件事。

请判断本次改动是否应该拆提交。

请按文件分组:
1. 同一任务必须一起提交的文件。
2. 可以拆成独立提交的文件。
3. 不应该提交的文件。
4. 需要人工确认的文件。

不要执行 git add、commit 或 push。

暂存前也要确认

暂存不是提交,但也会影响后续提交范围。可以这样让 CC 给文件清单:

请建议本次应该暂存哪些文件,但不要执行 git add。

请输出:
1. 建议暂存文件。
2. 每个文件为什么属于本次任务。
3. 不建议暂存文件。
4. 需要人工确认的文件。

提交信息不要夸大

请根据当前 diff 生成提交信息。

要求:
1. 只描述实际改动。
2. 不要写“全面优化”“彻底修复”。
3. 如果只是文档或样式,要明确。
4. 给出 3 个候选。
5. 不要执行提交。

真要提交前

即使让 CC 生成提交说明,也建议人工执行提交。至少要先看清楚 git status 和 diff。

请做最后提交前确认。

请输出:
1. 是否建议提交。
2. 推荐提交文件清单。
3. 不应提交文件清单。
4. 已完成验收。
5. 剩余风险。
6. 推荐提交信息。

推送前再问一次

推送会影响远程仓库。推送前让 CC 只做确认:

请做推送前确认,不要执行 push。

请检查:
1. 当前分支是什么。
2. 远程仓库和目标分支是什么。
3. 本地是否领先远程。
4. 是否有未提交改动。
5. 是否确认本次提交内容和提交信息准确。
6. 是否存在不应该推送的风险。

验收结果