用途:该技能针对两类常被误提交的文件——密钥与开发产物,提供预防、检测与修复方法,并强调 Git 历史不可逆、公开仓库等于公开文件。
主要能力:
- 审计仓库实际跟踪内容:用 git ls-files 配合 grep 查找密钥、缓存、数据库、系统文件及异常大文件。
- 解除跟踪:.gitignore 不会取消已提交文件的跟踪,需用 git rm --cached 保留本地副本后加入忽略并提交。
- 密钥处理顺序:先轮换/撤销凭据(唯一真正保护措施),再解除跟踪,必要时用 git filter-repo 或 BFG 清理历史并强推,作为维护者人工步骤。
- 预防:设置全局 core.excludesFile 忽略个人噪声,使用 gitleaks、detect-secrets 的 pre-commit 钩子阻止密钥进入历史,并提供 .gitignore 模板。
- 验证时保持工作区干净:用 git status --short 夹住构建/测试命令,只暂存已审查路径,避免 git add -A 扫入生成文件;必要时在临时副本中运行构建。
使用方式:按审计、修复、预防三步清单执行;命令与配置示例见原文。
限制:本技能只关注 Git 跟踪内容,不负责扫描源码漏洞;历史清理会改写 SHA 并影响协作者,通常不作为自动 PR 执行。