Skip to content
Back to skills

Git Guardrails Claude Code

ASecurity

設定 Claude Code hooks 來在執行前阻擋危險的 git 命令(push、reset --hard、clean、branch -D 等)。當使用者想要防止破壞性的 git 操作、新增 git 安全 hooks,或在 Claude Code 中阻擋 git push/reset 時使用。

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
ai-agentsbashrailsgit

Works with

  • claude code

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 19, 2026

npx -y skills add shumingyang-opencode/mattpocock-skills-zh-tw --skill git-guardrails-claude-code --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Git Guardrails Claude Code?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Git Guardrails Claude Code
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shumingyang-opencode-git-guardrails-claude-code/badge)](https://www.skillsdirectory.com/skills/shumingyang-opencode-git-guardrails-claude-code)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: git-guardrails-claude-code
description: 設定 Claude Code hooks 來在執行前阻擋危險的 git 命令(push、reset --hard、clean、branch -D 等)。當使用者想要防止破壞性的 git 操作、新增 git 安全 hooks,或在 Claude Code 中阻擋 git push/reset 時使用。
---

# 設定 Git 護欄(Setup Git Guardrails)

設定一個 PreToolUse hook,在 Claude 執行危險 git 命令之前攔截並阻擋它們。

## 會被阻擋的內容

- `git push`(所有變體,包含 `--force`)
- `git reset --hard`
- `git clean -f` / `git clean -fd`
- `git branch -D`
- `git checkout .` / `git restore .`

當被阻擋時,Claude 會看到一則訊息,告訴它沒有權限存取這些命令。

## 步驟

### 1. 詢問範圍

詢問使用者:只為**此專案**安裝(`.claude/settings.json`)還是**所有專案**(`~/.claude/settings.json`)?

### 2. 複製 hook 腳本

隨附的腳本位於:[scripts/block-dangerous-git.sh](scripts/block-dangerous-git.sh)

根據範圍將它複製到目標位置:

- **專案**:`.claude/hooks/block-dangerous-git.sh`
- **全域**:`~/.claude/hooks/block-dangerous-git.sh`

用 `chmod +x` 使它可執行。

### 3. 將 hook 加入設定

加到適當的設定檔:

**專案**(`.claude/settings.json`):

```json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-dangerous-git.sh"
          }
        ]
      }
    ]
  }
}
```

**全域**(`~/.claude/settings.json`):

```json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/block-dangerous-git.sh"
          }
        ]
      }
    ]
  }
}
```

如果設定檔已經存在,將 hook 合併到既有的 `hooks.PreToolUse` 陣列中 — 不要覆寫其他設定。

### 4. 詢問客製化

詢問使用者是否要從阻擋清單中新增或移除任何模式。據此編輯已複製的腳本。

### 5. 驗證

執行一個快速測試:

```bash
echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>
```

應該以代碼 2 結束,並在 stderr 列印一則 BLOCKED 訊息。

Files in this skill

  • SKILL.md2.3 KB
  • agents/openai.yaml112 B
  • scripts/block-dangerous-git.sh507 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…