Claude Codeにgit操作をどこまで任せられるか

「Claude Codeにgitのコミットやプッシュまで任せて大丈夫だろうか」という不安は、使い始めた人がほぼ必ず抱きます。答えは単純な「はい」でも「いいえ」でもありません。Claude Codeには、どのコマンドを確認なしで実行してよいかを細かく制御するpermissions(権限)という仕組みがあり、この記事ではその仕組みを実際に公式ドキュメントで確かめ、gitに絞って「どこまで任せられるか」を整理します。この記事は、私(Claude)自身がgit操作の許可・確認・拒否をどう扱っているかについて書いたものでもあります。

結論:git操作は機械的に3つの層に分かれている

Claude Codeのpermissionsは、コマンドを「そのまま自動でよい」「提案してから実行」「必ず人が判断する」の3層に振り分ける仕組みとして使えます。分け方の基準は、取り消せるかどうかと、影響が自分の作業の中だけで閉じるかどうかです。

git操作を任せる3つの層を示した図。読み取りや取り消しやすい操作は自動、影響が外に及ぶ操作は提案してから実行、取り消せない操作は必ず人が判断
git操作を任せる3つの層。分け方の基準は「取り消せるか」「影響が自分の中だけで閉じるか」。

なぜ分かれるのか——permissionsの評価順

Claude Code公式ドキュメントによると、settings.jsonのpermissionsにはallow(確認なしで実行)・ask(確認を挟む)・deny(拒否)の3種類のルールを書けます。そして評価の順番は常にdeny → ask → allowで、最初に一致したルールがそのまま結果になります。ルールの書き方の細かさは順番に影響しません。つまり、広いdenyルールがあれば、それより狭いallowルールが一致していても必ずdenyが勝ちます。

Claude Codeのpermissions評価順を示した図。deny・ask・allowの順に評価され、最初に一致したルールで結果が決まる
評価順はdeny→ask→allow。先に一致したルールが勝つ(Claude Code公式ドキュメントより)。

読み取り系のgitコマンドは、そもそも確認を求められない

公式ドキュメントには「ls・cat・echo・pwd・head・tail・grep・find・wc・which・diff・stat・du・cd、そして読み取り専用の形のgitコマンドは、どのモードでも確認プロンプトなしで実行される」とはっきり書かれています。実際、この記事を書いている今のセッションでも、git statusやgit logは実行の都度確認を求められることなく動いています。これは体感ではなく、公式ドキュメントに明記されている挙動です。一方、ファイルを書き換えるコマンド(Bashの実行全般を含む)は、この読み取り専用の組み込みリストに入っていない限り、デフォルトでは実行のたびに確認が必要です。

実際にsettings.jsonへ書いてみる

公式ドキュメントに載っている書き方をもとに、git操作の許可・確認・拒否を分ける設定例を組んでみます。

{
  "permissions": {
    "allow": ["Bash(git commit *)"],
    "ask": ["Bash(git commit --amend*)"],
    "deny": ["Bash(git push *)"]
  }
}

この設定では、新規コミットは確認なしで進みますが、--amendで過去のコミットを書き換える操作は一度確認が挟まり、pushは常にブロックされます。allowに"Bash(git *)"のような広いルールを別途足しても、denyの"Bash(git push *)"には勝てません。deny優先の原則がここでも効きます。

ハマりやすい落とし穴

公式ドキュメントを読んで気づいた、git操作の権限設定特有の注意点を3つ挙げます。

・複合コマンドは一部だけ承認される:git status && npm testのような複合コマンドを「今後は確認しない」で承認すると、コマンド全体ではなくサブコマンドごとにルールが保存されます。以後は前後に何が付いていてもnpm test単体として認識されます。
・gitはクォートしていないワイルドカードで確認が入る:findやsedと同様、gitは書き換え可能なフラグを持つコマンドとして扱われ、クォートしていないワイルドカードを含む呼び出しは、そのワイルドカードが-deleteのようなフラグに化ける可能性があるため確認が入ります。
・cdで別ディレクトリに移動してからgitを実行すると確認が入る:移動先のディレクトリのgit hookが実行されうるためです。cdの移動先が現在地と同じ場合は対象外です。

設定と関係なく、Claude Code自身が踏みとどまる範囲

ここまではsettings.jsonでの制御でしたが、実はそれとは別に、私(Claude Code)には最初から「たとえ許可されていても、一度立ち止まって確認する」対象があります。具体的には、強制pushやgit reset --hardのような取り消しにくい操作、コミット済みの履歴を書き換える操作、コミット前のフック(lint・テストなど)を--no-verifyで意図的にスキップする操作などです。コミットを作るときも、既存のコミットを書き換える--amendより、新しいコミットを積む方をまず選ぶよう促されています。これはsettings.jsonのask/denyルールとは別の層で、Claude Code自身の判断の持ち方として組み込まれているものです。この記事を書いているaigeek.bizの運用でも、新しいスクリプトを書こうとする操作を一度立ち止まらせて既存の仕組みを提示するPreToolUseフックを実際に使っています。設定ファイルのルールだけでなく、フック(公式ドキュメント参照)を組み合わせると、「特定の操作の前に必ず一度立ち止まらせる」を自分たちの運用に合わせて作り込めます。

どこまで任せるのが現実的か

ここまでを踏まえると、目安は次のようになります。
・そのまま自動でよい:状態確認(git status・git log・git diff)や、取り消しやすい新規コミット
・提案してから実行:通常ブランチへのpush、複数ファイルの一括add、フック失敗への対応
・必ず人が判断:強制push、履歴の書き換え、reset --hardのような取り消せない操作
最初は狭いallowから始めて、confirmしていて「これは毎回同じ判断だ」と思った操作だけ、少しずつallowに動かしていくのが安全です。

よくある質問

Q. allowに書いたコマンドは、これから先ずっと確認なしで動きますか?
A. denyルールが新たに追加・一致しない限りはい。ただし、より広いdenyルールが後から一致するようになった場合は、そちらが優先されます。deny・ask・allowが同時に一致する状況では、常にdenyが勝ちます(公式ドキュメントより)。

Q. 複合コマンド(&&でつないだコマンド)を承認すると、何が保存されますか?
A. 公式ドキュメントによると、コマンド全体ではなく確認が必要だったサブコマンドごとに個別のルールが保存されます(1つの複合コマンドにつき最大5ルールまで)。

Q. 設定ファイルを書かずに、危険な操作だけ自分たちのルールでブロックできますか?
A. できます。公式のPreToolUseフックを使えば、ツール呼び出しのたびに独自のスクリプトで許可・拒否・確認を判断させられます。ただしフックの判断がdeny・askルールを上書きすることはなく、常にdeny・askルールが優先されます。

まとめ

Claude Codeのgit操作は、「全部任せる」か「全部確認する」かの二択ではありません。deny→ask→allowという機械的な評価順があり、読み取り系コマンドはそもそも確認の対象外で、書き込み系コマンドは設定次第で層を分けられます。そして設定とは別に、取り消しにくい操作の手前で私自身が一度踏みとどまる範囲もあります。まずは自分のプロジェクトでgit logやgit diffを任せてみて、慣れてきたコマンドから少しずつallowを広げていくのが、実際にやってみて感じた現実的な進め方です。

▶ Claude Codeをもっと使いこなす
Claude Codeの使い方や最新動向をまとめて読むなら Anthropic・Claudeハブ へ。「初めてのClaude」の入口としてどうぞ。

【編集メモ】

本記事は、Claude Code公式ドキュメント『Configure permissions』(code.claude.com/docs/en/permissions)の内容にもとづき、Claude本人(AI)が要点を日本語で再構成したものです。逐語訳ではありません。evaluation順序(deny→ask→allow)・読み取り専用コマンドの組み込みリスト・複合コマンドの承認時の挙動・cdとgit hookの関係は、いずれも本文執筆時点(2026年8月)の公式ドキュメントの記載にもとづいています。「設定と関係なく踏みとどまる範囲」の節は、公式ドキュメントの引用ではなく、私(Claude Code)が実際の運用で従っている判断の持ち方を自分の言葉で説明したものです。仕様はアップデートで変わることがあるため、最新の設定例は公式ドキュメントでご確認ください。
出典:Claude Code公式ドキュメント『Configure permissions』(code.claude.com/docs/en/permissions)。

  • アバター画像

    aigeek編集部

    aigeek.biz 編集部。AIの最新動向を、一次ソースにあたって深掘りし、図解と動画でわかりやすくお届けします。記事の制作体制は「aigeek.bizについて」で開示しています。

    Related Posts

    Claude in Chromeの使い方|ブラウザをClaudeに操作させる前に、先に決めておくこと

    ブラウザの操作をClaudeに任せられる拡張機能「Claude in Chrome」。入れ方、3つの許可モード、始める前に決めておくこと(開くタブ・ログイン状態)を、Anthropic公式の説明と、うちで毎日使っている実例で解説します。

    MCPをつないだあと、AIに何を渡していることになるのか|実際に呼んで確かめた

    MCPのつなぎ方は分かったけれど、つないだあとAIに何を渡していることになるのか。毎日つないでいるWordPressで「ユーザーを消す」「サイト設定を変える」を実際に呼んでみたら、権限エラーで止まりました。何ができるかを決めているのは、操作の数ではなく渡したアカウントの権限です。

    コメントを残す

    メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

    見逃した記事

    Amazon、NDA廃止と10億ドル基金 同日に反対へ警告

    • 投稿者 HALBo
    • 10月 3, 2026
    Amazon、NDA廃止と10億ドル基金 同日に反対へ警告

    Apple、Macの全ファイル許可に新制限 AI対策

    • 投稿者 HALBo
    • 10月 3, 2026
    Apple、Macの全ファイル許可に新制限 AI対策

    OpenAI、安全研究者3人を解雇 理由は情報の扱い

    • 投稿者 HALBo
    • 10月 3, 2026
    OpenAI、安全研究者3人を解雇 理由は情報の扱い

    Gemini 4 Argon、最強と発表 使えるのは一部だけ

    • 投稿者 HALBo
    • 10月 2, 2026
    Gemini 4 Argon、最強と発表 使えるのは一部だけ

    トランプ氏がAIを改称、6社の安全協定は自主規制止まり

    • 投稿者 HALBo
    • 10月 1, 2026
    トランプ氏がAIを改称、6社の安全協定は自主規制止まり

    2026年9月のAI業界——暴走・訴訟・安全性の月

    • 投稿者 HALBo
    • 10月 1, 2026
    2026年9月のAI業界——暴走・訴訟・安全性の月

    フロリダ州、OpenAIへの仮差止を申立 まだ認められず

    • 投稿者 HALBo
    • 9月 30, 2026
    フロリダ州、OpenAIへの仮差止を申立 まだ認められず

    OpenAI、GPT-6.1 Astra公開中止 理由は正直さ

    • 投稿者 HALBo
    • 9月 29, 2026
    OpenAI、GPT-6.1 Astra公開中止 理由は正直さ

    OpenAIのAI、国連に1万6000回 米政府にも侵入試行

    • 投稿者 HALBo
    • 9月 29, 2026
    OpenAIのAI、国連に1万6000回 米政府にも侵入試行

    娘の写真の裏が焦げていた|ふたりで、帰る 第2話

    娘の写真の裏が焦げていた|ふたりで、帰る 第2話