M

git-guardrails-claude-code

作者 mattpocock

git-guardrails-claude-code 通过添加 PreToolUse hook,在 Claude Code 执行前拦截危险的 git 命令。安装后可防止破坏性 push、hard reset、强制清理和分支删除,并支持按项目或全局范围控制。适合在 Claude Code 中需要用 git-guardrails-claude-code 做访问控制边界时使用。

Stars66k
收藏0
评论0
收录时间2026年5月8日
分类访问控制
安装命令
npx skills add mattpocock/skills --skill git-guardrails-claude-code
编辑评分

这个技能得分 78/100,属于 Agent Skills Finder 中相当稳妥的收录候选:它为目录用户提供了一个具体可落地的安全工作流,用来在 Claude Code 中拦截破坏性的 git 命令,而且实现细节足够,基本可以直接安装和使用,而不必从零搭建。不过,用户在采用前仍应先确认适用范围选择和环境匹配情况。

78/100
亮点
  • 触发场景和目标明确:在 Claude Code 中拦截危险的 git 命令,包括 push、reset --hard、clean -f 和 branch -D。
  • 可直接落地:提供了分步骤的设置流程,并附带脚本 scripts/block-dangerous-git.sh。
  • 对 agent 很友好:使用 PreToolUse hook,并给出项目级和全局安装所需的 settings.json 精确示例。
注意点
  • 部分配置默认用户熟悉 shell 和工具链:需要手动复制脚本、执行 chmod +x,并正确编辑 Claude 设置。
  • 文档摘录对拦截机制讲得很充分,但对边界情况和验证步骤提及较少,因此实际接入可能需要一些试错。
概览

git-guardrails-claude-code 技能概览

git-guardrails-claude-code 的作用

git-guardrails-claude-code 技能会为 Claude Code 添加 hooks,在危险的 git 命令真正执行前将其拦截。它面向的是希望获得“强制约束层”而不只是礼貌提醒的团队或个人,用来阻止诸如 git push --forcegit reset --hardgit clean -fgit branch -D 这类破坏性操作。

适合谁安装

如果你在那些偶尔会发生误删数据、误推送或本地历史被重写的仓库里工作,这个 git-guardrails-claude-code 技能就很有价值。尤其是在你希望 Claude Code 在更安全的边界内运行,并且需要这些边界被稳定、持续地强制执行时,它会非常实用。

它和普通安全提醒有什么不同

和只靠 prompt 提醒“注意安全”不同,这个技能会安装一个 PreToolUse hook,在命令执行前直接阻止它。这意味着它是实际生效的防护,而不是建议性质的提醒。它的主要取舍也很明确:它只能保护它匹配到的命令,所以它更适合拦截那些明确、已知有风险的 git 操作,而不是承担通用策略治理的角色。

如何使用 git-guardrails-claude-code 技能

安装技能并选择作用范围

使用以下命令安装:
npx skills add mattpocock/skills --skill git-guardrails-claude-code

第一步要决定的是作用范围:只安装到当前项目,还是安装到所有项目。若你想先在一个仓库里验证 hook,项目级范围更稳妥;如果你的工作流要求在所有 Claude Code 场景下都拦截这些命令,那么全局范围更合适。

先看对的文件

先打开 SKILL.md 理解整体安装流程,再查看 scripts/block-dangerous-git.sh,因为真正的强制逻辑在这里。若你要调整行为,脚本比说明文字更重要。对这份 git-guardrails-claude-code 指南来说,这也是最快的实操阅读路径。

如何提出一个更好的请求

这个技能在你明确指定适用范围,以及你认定哪些命令危险时,效果最好。一个更强的请求会像这样:“为当前项目安装 git-guardrails-claude-code,并拦截 push、reset --hard、clean -fd 和 branch -D。”
像“让 git 更安全”这种说法就太泛了,范围和策略都不够清晰,安装时很难准确落地。

验证并自定义 hook

把 hook 复制到 .claude/hooks/block-dangerous-git.sh~/.claude/hooks/block-dangerous-git.sh 之后,记得赋予可执行权限,并在对应的 settings.json 中完成注册。然后在一个安全仓库里测试一个会被拦截的命令,确认 Claude 能收到拒绝信息。
如果团队还会碰到其他高风险命令,不要只依赖 prompt 文本,而是直接在脚本里扩展匹配列表。

git-guardrails-claude-code 技能 FAQ

这是 git 权限控制的替代品吗?

不是。git-guardrails-claude-code 是本地的 Claude Code 防护层,不是服务端访问控制系统。它可以阻止 Claude 执行匹配到的命令,但不能替代分支保护、仓库权限、评审规则或远端策略。

什么情况下它不适合用?

如果你需要不受限制的 git 自动化,或者你的工作流本来就依赖会合法使用 git clean -fdgit branch -D 这类命令的脚本,那就不太适合。此时,过于宽泛的阻止规则可能带来的摩擦大于价值,反而是更窄的规则集更合适。

对新手友好吗?

如果你能按步骤完成一个小型安装流程,并编辑 JSON,那它是友好的。概念本身并不复杂,但要获得最佳效果,关键在于你要清楚到底想拦截哪些命令,以及 hook 应该放在哪个层级。新手最容易卡住的通常是作用范围的选择,而不是 hook 本身。

普通 prompt engineering 能达到同样效果吗?

不能。Prompt 可以要求 Claude 更谨慎,但无法可靠地强制阻止命令执行。git-guardrails-claude-code 技能适合那种“必须在命令执行前就停下”的场景,即使模型原本会同意执行也一样。

如何改进 git-guardrails-claude-code 技能

收紧被拦截的命令列表

提升最大的地方,是让匹配规则真正贴合你的风险画像。先检查团队是否只需要拦截 git pushgit reset --hard,还是也应该把 git clean -fgit checkout .git restore . 一并挡住。输入越贴近真实使用场景,误报越少,漏网也越少。

让作用范围保持克制

如果是试验、共享仓库上手,或者只想在某个敏感代码库里做一次性防护,用项目级范围更合适。只有当你非常确定同一套策略应该在所有地方都生效时,才用全局范围。对 git-guardrails-claude-code 的安装来说,这个决定最直接影响落地效果。

测试失败时的表现

安装完成后,故意试一次应该被拦截的命令,确认拒绝信息是否清晰、是否立即生效。如果 hook 太宽松,就加固匹配规则;如果拦得太多,就收窄模式,或者把项目专属规则和个人规则拆开。把第一次运行当作验证步骤,而不是最终定稿。

评分与评论

暂无评分
分享你的评价
登录后即可为这个技能评分并发表评论。
G
0/10000
最新评论
保存中...