大模型应用
在 Claude Code 中拦截危险 git…
当需要防止 Claude Code 执行 git push、reset --hard、clean、branch -D 等破坏性 git 操作时,通过 PreToolUse 钩子提前拦截。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 58/100 ×0.15
适用场景
在 Claude Code 中拦截危险 特定
解决思路
- 询问用户安装范围:仅当前项目(`.claude/settings.json`)还是所有项目(`~/.claude/settings.json`)。
- 将捆绑的钩子脚本 [scripts/block-dangerous-git.sh](scripts/block-dangerous-git.sh) 复制到目标位置:项目级为 `.claude/hooks/block-dangerous-git.sh`,全局级为 `~/.claude/hooks/block-dangerous-git.sh`。
- 用 `chmod +x` 赋予脚本可执行权限。
- 在对应的 settings 文件中添加钩子配置:项目级写入 `.claude/settings.json`,command 为 `"$CLAUDE_PROJECT_DIR"/.claude/hooks/block-dangerous-git.sh`;全局级写入 `~/.claude/settings.json`,command 为 `~/.claude/hooks/block-dangerous-git.sh`;两者均使用 matcher `Bash`、type `command`。
- 如果 settings 文件已存在,将钩子合并进现有的 `hooks.PreToolUse` 数组,不要覆盖其他设置。
- 询问用户是否要从阻止列表中增删模式,并相应编辑复制后的脚本。
- 运行验证测试:`echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>`,应退出码为 2 并向 stderr 打印 BLOCKED 消息。