用途:为 Claude Code 安装 Git 防护钩子,通过 PreToolUse 钩子在命令执行前拦截并阻止危险 git 操作,避免误执行破坏性命令。
主要拦截的命令包括:git push(含 --force 等所有变体)、git reset --hard、git clean -f / git clean -fd、git branch -D、git checkout . / git restore .。被拦截时 Claude 会收到无权限访问这些命令的提示。
使用方式:先询问安装范围——仅当前项目(.claude/settings.json)还是所有项目(~/.claude/settings.json)。随后将捆绑脚本 scripts/block-dangerous-git.sh 复制到对应位置(项目为 .claude/hooks/block-dangerous-git.sh,全局为 ~/.claude/hooks/block-dangerous-git.sh),并用 chmod +x 赋予可执行权限。之后把钩子写入相应设置文件的 hooks.PreToolUse 数组,匹配器为 Bash;若设置文件已存在,需合并进现有 hooks.PreToolUse 数组而非覆盖其他设置。安装后可询问是否增删拦截模式并相应编辑脚本。
验证:运行 echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>,应返回退出码 2 并向 stderr 输出 BLOCKED 信息。
限制:项目路径相关命令在项目设置中使用 "$CLAUDE_PROJECT_DIR"/.claude/hooks/...,全局设置使用 ~/.claude/hooks/...;其余配置项与收费、平台支持等资料暂未提供。