Agent Skills
返回列表
💻

Git安全护栏

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/git-guardrails-claude-code。

技能介绍

要解决的具体问题

自动化 agent(如 Claude Code)执行 Git 命令时,易出现误操作:比如误执行 git push 推送未验证的代码、用 git reset --hard 清除未保存的修改、或通过 git branch -D 删除关键分支,这些破坏性操作可能导致代码丢失、协作混乱甚至生产环境故障。而 agent 通常缺乏“命令危险程度判断”能力,需要一道硬护栏在命令执行前拦截风险。

技能如何工作

作为安全配置助手,该技能核心是为 Claude Code 配置 PreToolUse 钩子,在 Git 命令执行前完成拦截。关键步骤包括:

  1. 确定范围:根据需求选择配置到本项目(.claude/settings.json)或所有项目(~/.claude/settings.json);
  2. 放置钩子命令:在目标位置(项目 .claude/hooks/ 或全局 ~/.claude/hooks/)准备可执行文件,逻辑为读取工具输入 JSON 的 command 字段,匹配拦截模式则非0退出并打印 BLOCKED,否则放行(技能仅规定行为,不提供脚本);
  3. 写入设置:将钩子加入对应 settings.json 的 hooks.PreToolUse(matcher 为 Bash),若已有设置则合并而非覆盖;
  4. 定制拦截:按需求增删被拦截的 Git 命令;
  5. 校验有效性:用模拟输入(如 {"tool_input":{"command":"git push origin main"}})验证,预期退出码2且stderr打印 BLOCKED。

适用边界与注意点

该技能仅描述配置方法与钩子逻辑(instruction-only),不附带可执行脚本文件,钩子命令的实现需用户/环境自行提供。被拦截的 Git 命令包括:git push(含--force)、git reset --hard、git clean -f与-fd、git branch -D、git checkout .与git restore .。配置后,所有经 Bash 执行的 Git 命令受钩子约束,与协作类技能(如 resolving-merge-conflicts)使用时,以护栏为优先拦截标准。

使用场景

  • 开发时担心agent误推送未验证代码到远程仓库,需要阻止其执行git push操作
  • 整理项目分支时怕agent误删关键分支,需要拦截git branch -D这类破坏性命令
  • 清理代码时担心agent误用git reset --hard清除未保存的修改,需要前置阻止
  • 协作开发中怕agent误执行git clean -f删除未纳入版本控制的文件,需要限制其行为

适合人员

  • 使用Claude Code编写代码的开发者,需要防止agent误执行破坏性Git命令
  • 管理团队代码仓库的负责人,希望为agent添加Git操作硬约束避免协作故障
  • 负责维护自动化开发流程的工程师,需要在命令执行前拦截风险操作
  • 参与多人协作项目的成员,担心agent误删分支或清除文件影响进度