用途:为 Claude Code 配置 Git 防护栏,通过 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 数组,matcher 为 Bash,command 指向脚本路径;若设置文件已存在,应合并而非覆盖其他设置。之后可询问用户是否增删阻止列表中的模式,并编辑脚本。最后验证:echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>,应以代码 2 退出并在 stderr 打印 BLOCKED 消息。
适用场景:需要防止破坏性 git 操作、添加 git 安全钩子,或在 Claude Code 中阻止 git push/reset 等命令时。
限制:资料未提供脚本内部实现细节、支持的命令完整清单、与其他钩子的兼容性及异常处理说明,暂未提供。