git-guardrails-claude-code
vinvcn/mattpocock-skills-zh-CN/skills/misc/git-guardrails-claude-code/SKILL.md
设置 Claude Code hooks,在危险 git commands(push、reset --hard、clean、branch -D 等)执行前阻止它们。适用于用户想防止破坏性 git 操作、添加 git safety hooks,或在 Claude Code 中阻止 git push/reset 时。
Skill4.6k starsChanged 55 days ago
- Deletes or force-pushes
- Commits and pushes
What's in it
- Setup Git Guardrails
- What Gets Blocked
- Steps
- 1. Ask scope
- 2. Copy the hook script
- 3. Add hook to settings
- 4. Ask about customization
- 5. Verify
---
name: git-guardrails-claude-code
description: 设置 Claude Code hooks,在危险 git commands(push、reset --hard、clean、branch -D 等)执行前阻止它们。适用于用户想防止破坏性 git 操作、添加 git safety hooks,或在 Claude Code 中阻止 git push/reset 时。
---
# Setup Git Guardrails
设置一个 PreToolUse hook,在 Claude 执行危险 git commands 前拦截并阻止它们。
## What Gets Blocked
- `git push`(包括 `--force` 在内的所有 variants)
- `git reset --hard`
- `git clean -f` / `git clean -fd`
- `git branch -D`
- `git checkout .` / `git restore .`
被阻止时,Claude 会看到一条 message,说明它无权访问这些 commands。
## Steps
### 1. Ask scope
询问用户:只为**当前 project** 安装(`.claude/settings.json`),还是为**所有 projects** 安装(`~/.claude/settings.json`)?
### 2. Copy the hook script
bundled script 位于:[scripts/block-dangerous-git.sh](scripts/block-dangerous-git.sh)
根据 scope 复制到目标位置:
- **Project**: `.claude/hooks/block-dangerous-git.sh`
- **Global**: `~/.claude/hooks/block-dangerous-git.sh`
用 `chmod +x` 让它可执行。
### 3. Add hook to settings
添加到对应 settings file:
**Project** (`.claude/settings.json`):
```json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-dangerous-git.sh"
}
]
}
]
}
}
```
**Global** (`~/.claude/settings.json`):
```json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/block-dangerous-git.sh"
}
]
}
]
}
}
```
如果 settings file 已存在,把 hook merge 到现有 `hooks.PreToolUse` array 中,不要覆盖其他 settings。
### 4. Ask about customization
询问用户是否要在 blocked list 中添加或移除 patterns。相应编辑复制后的 script。
### 5. Verify
运行快速测试:
```bash
echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>
```
应以 code 2 退出,并向 stderr 打印 BLOCKED message。
More agent context in vinvcn/mattpocock-skills-zh-CN
39 other files this repository gives its agents.
AGENTS.md
CLAUDE.md
Skill
- ask-mattskills/engineering/ask-matt/SKILL.md
- codebase-designskills/engineering/codebase-design/SKILL.md
- code-reviewskills/engineering/code-review/SKILL.md
- diagnosing-bugsskills/engineering/diagnosing-bugs/SKILL.md
- domain-modelingskills/engineering/domain-modeling/SKILL.md
- grill-with-docsskills/engineering/grill-with-docs/SKILL.md
- implementskills/engineering/implement/SKILL.md
- improve-codebase-architectureskills/engineering/improve-codebase-architecture/SKILL.md
- prototypeskills/engineering/prototype/SKILL.md
- researchskills/engineering/research/SKILL.md
- resolving-merge-conflictsskills/engineering/resolving-merge-conflicts/SKILL.md
- setup-matt-pocock-skillsskills/engineering/setup-matt-pocock-skills/SKILL.md
- tddskills/engineering/tdd/SKILL.md
- to-specskills/engineering/to-spec/SKILL.md
- to-ticketsskills/engineering/to-tickets/SKILL.md
- triageskills/engineering/triage/SKILL.md
- wayfinderskills/engineering/wayfinder/SKILL.md
- wizardskills/engineering/wizard/SKILL.md
- claude-handoffskills/in-progress/claude-handoff/SKILL.md
- implement-specskills/in-progress/implement-spec/SKILL.md
- loop-meskills/in-progress/loop-me/SKILL.md
- prskills/in-progress/pr/SKILL.md
- retroskills/in-progress/retro/SKILL.md
- setup-ts-deep-modulesskills/in-progress/setup-ts-deep-modules/SKILL.md
- writing-beatsskills/in-progress/writing-beats/SKILL.md
- writing-fragmentsskills/in-progress/writing-fragments/SKILL.md
- writing-shapeskills/in-progress/writing-shape/SKILL.md
- migrate-to-shoehornskills/misc/migrate-to-shoehorn/SKILL.md
- scaffold-exercisesskills/misc/scaffold-exercises/SKILL.md
- setup-pre-commitskills/misc/setup-pre-commit/SKILL.md
- grillingskills/productivity/grilling/SKILL.md
- grill-meskills/productivity/grill-me/SKILL.md
- handoffskills/productivity/handoff/SKILL.md
- teachskills/productivity/teach/SKILL.md
- to-questionnaireskills/productivity/to-questionnaire/SKILL.md
- wait-whatskills/productivity/wait-what/SKILL.md
- writing-for-agentsskills/productivity/writing-for-agents/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
Reports can't be read right now.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool public_context_discussion, action report. How to connect one.

