用途:在 Claude Code 中安装 PreToolUse 钩子,于执行危险 Git 命令前将其拦截并阻止,避免破坏性操作。
主要能力:阻止 git push(含 --force 等所有变体)、git reset --hard、git clean -f / -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 数组,项目级命令为 "$CLAUDE_PROJECT_DIR"/.claude/hooks/block-dangerous-git.sh,全局为 ~/.claude/hooks/block-dangerous-git.sh;若设置文件已存在需合并而非覆盖。之后可询问用户是否增删阻止模式并编辑已复制的脚本。验证:echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script> 应返回退出码 2 并向 stderr 打印 BLOCKED 消息。
适用场景:希望在使用 Claude Code 时防止误执行破坏性 Git 操作,或需要添加 Git 安全钩子。
限制:资料未提供脚本拦截逻辑之外的实现细节、兼容版本、其他可用模式或更多安装说明。