Gitignore doctor
35 个即用 Claude Code skill,每个都带离线测试 + skill-doctor 自校验 · 35 tested, self-linted Claude Code skills (中文优先)
npx -y skills add YuAICode/ai-skills --skill gitignore-doctorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
揪出已被 git 追踪或即将提交的垃圾文件,给 .gitignore 追加建议。当用户说「检查 gitignore / gitignore 有问题 / 哪些文件不该提交 / 帮我清理 gitignore / .DS_Store 被提交了 / node_modules 进了 git」时触发。
SKILL.md
2.9 KB, as published. Nobody here has run it
gitignore-doctor — .gitignore 诊断与修复助手
揪出已被 git 追踪或未被忽略的垃圾文件(node_modules、.env、.DS_Store 等),输出两组清单 + 建议追加到 .gitignore 的内容,在用户确认后再执行清理。
何时触发
用户说以下任意一种:
- "检查一下 gitignore / .gitignore 有没有问题"
- "哪些文件不该提交 / 哪些文件漏加 .gitignore 了"
- "帮我清理 gitignore / 修一下 .gitignore"
- ".DS_Store / node_modules / .env 被 git 追踪了"
- "git 里有垃圾文件"
工作流
1. 跑诊断脚本(只读,不修改任何东西)
bash <skill>/bin/check.sh [项目目录] # 默认当前目录
脚本退出码含义:
exit 0— 无已追踪的垃圾(可能有"建议加 .gitignore"的提示)exit 2— 发现已被 git 追踪的垃圾文件,需要清理exit 1— 不是 git 仓库
2. 用中文解释结果
把脚本输出的两组清单翻译成用户可读的说明:
若有「已被追踪的垃圾文件」(exit 2):
- 逐文件说明为什么它不应该被追踪
- 给出完整的清理命令,例如:
git rm --cached .DS_Store git rm --cached -r node_modules/ - 给出建议追加到
.gitignore的内容块
若只有「建议加进 .gitignore」(exit 0):
- 说明这些文件当前未被追踪也未被忽略,存在将来误 add 的风险
- 给出建议追加的 .gitignore 内容块
3. 征得用户同意后执行
不要在用户确认前执行任何 git rm --cached 或修改 .gitignore。
等用户说"好 / 执行 / 可以"后再逐步执行:
- 执行
git rm --cached命令(如有已追踪垃圾) - 将建议内容追加到
.gitignore - 提示用户确认
git add .gitignore并重新 commit
检测的垃圾模式
| 模式 | 说明 |
|---|---|
node_modules/ | Node.js 依赖,不应提交 |
dist/ / build/ | 构建产物 |
.env / .env.* | 环境变量/密钥文件 |
.DS_Store | macOS 系统文件 |
*.log | 日志文件 |
__pycache__/ / *.pyc | Python 编译缓存 |
.idea/ / .vscode/ | IDE 配置(建议个人 global gitignore) |
coverage/ | 测试覆盖率报告 |
*.class | Java 编译产物 |
target/ | Maven/Cargo 构建目录 |
vendor/ | Go/PHP 依赖(视项目而定) |
.gradle/ | Gradle 缓存 |
Pods/ | iOS CocoaPods 依赖 |
边界
- 脚本本身只读:不修改任何文件、不执行任何 git 写操作。
- 不扫历史提交,只看当前
git ls-files输出与工作区状态。 vendor/在 Go 项目里有时需要提交(Go mod vendor),执行前请与用户确认。- 不联网、不需要外部依赖(纯 bash + git + grep)。