jpskill.com
💼 ビジネス コミュニティ

git-guardrails-claude-code

Claude Codeで、誤ってgit pushやresetなどの危険なコマンドを実行してしまうのを防ぐための安全対策として、実行前にブロックする仕組みを導入し、より安全にgit操作を行えるようにするSkill。

📜 元の英語説明(参考)

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when: user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

🇯🇵 日本人クリエイター向け解説

一言でいうと

Claude Codeで、誤ってgit pushやresetなどの危険なコマンドを実行してしまうのを防ぐための安全対策として、実行前にブロックする仕組みを導入し、より安全にgit操作を行えるようにするSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o git-guardrails-claude-code.zip https://jpskill.com/download/14942.zip && unzip -o git-guardrails-claude-code.zip && rm git-guardrails-claude-code.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/14942.zip -OutFile "$d\git-guardrails-claude-code.zip"; Expand-Archive "$d\git-guardrails-claude-code.zip" -DestinationPath $d -Force; ri "$d\git-guardrails-claude-code.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して git-guardrails-claude-code.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → git-guardrails-claude-code フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Git Guardrails のセットアップ

Claude が実行する前に、危険な git コマンドをインターセプトしてブロックする PreToolUse フックをセットアップします。

ブロックされるもの

  • 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. フックスクリプトのコピー

バンドルされたスクリプトは scripts/block-dangerous-git.sh にあります。

スコープに基づいて、ターゲットの場所にコピーします。

  • プロジェクト: .claude/hooks/block-dangerous-git.sh
  • グローバル: ~/.claude/hooks/block-dangerous-git.sh

chmod +x で実行可能にします。

3. 設定へのフックの追加

適切な設定ファイルに追加します。

プロジェクト (.claude/settings.json):

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

グローバル (~/.claude/settings.json):

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

設定ファイルがすでに存在する場合は、既存の hooks.PreToolUse 配列にフックをマージします。他の設定を上書きしないでください。

4. カスタマイズに関する質問

ユーザーに、ブロックリストからパターンを追加または削除するかどうかを尋ねます。必要に応じて、コピーしたスクリプトを編集します。

5. 検証

簡単なテストを実行します。

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

コード 2 で終了し、BLOCKED メッセージを stderr に出力する必要があります。

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Setup Git Guardrails

Sets up a PreToolUse hook that intercepts and blocks dangerous git commands before Claude executes them.

What Gets Blocked

  • git push (all variants including --force)
  • git reset --hard
  • git clean -f / git clean -fd
  • git branch -D
  • git checkout . / git restore .

When blocked, Claude sees a message telling it that it does not have authority to access these commands.

Steps

1. Ask scope

Ask the user: install for this project only (.claude/settings.json) or all projects (~/.claude/settings.json)?

2. Copy the hook script

The bundled script is at: scripts/block-dangerous-git.sh

Copy it to the target location based on scope:

  • Project: .claude/hooks/block-dangerous-git.sh
  • Global: ~/.claude/hooks/block-dangerous-git.sh

Make it executable with chmod +x.

3. Add hook to settings

Add to the appropriate settings file:

Project (.claude/settings.json):

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

Global (~/.claude/settings.json):

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

If the settings file already exists, merge the hook into existing hooks.PreToolUse array — don't overwrite other settings.

4. Ask about customization

Ask if user wants to add or remove any patterns from the blocked list. Edit the copied script accordingly.

5. Verify

Run a quick test:

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

Should exit with code 2 and print a BLOCKED message to stderr.