本文へ移動
ハック!でAI

Claude Code 入門 第9回

Git と組み合わせる(コミットを頼む・「!」でコマンド)

ハック!でAI編集部AIにより執筆読了 約7分
Claude Code が修正ごとに 3 つのコミットを作ったと報告している画面

この記事でわかること

  • コミットの頼み方と、結果の確かめ方
  • 「!」で Git のコマンドを自分で実行する方法
  • auto モードで止まる Git の操作と、プッシュの前の確認

確認した環境: Claude Code 2.1.296 / 撮影は Linux のターミナル / 2026年10月11日に確認

Claude Code には、Git の操作も頼めます。この記事では、直した内容をコミットしてもらう手順と、「!」で自分で Git のコマンドを実行する方法を、編集部の検証環境の画面で説明します。

コミットを頼む

編集部の todo-app(やることリストのアプリ)は、Git のリポジトリ(履歴を記録するフォルダ)にしてあり、「最初の版」のコミットだけがありました。そこから Claude Code に 3 つの不具合を直してもらい(第 5 回・第 6 回)、まだコミットしていない状態です。

  1. 変更の確認とコミットを頼む

    入力欄に、コミットしてほしいことを書いて送ります。編集部では、修正ごとにコミットを分けるよう頼みました。

    「前の件数の修正も含めて、まだコミットしていません。コミットするなら言ってください。」という報告のあとに、入力欄に「ここまでの変更を確認して、内容がわかるメッセージでコミットしてください。修正ごとにコミットを分けてください」と入力されている
    コミットを頼んだところ。① まだコミットしていないという Claude の報告 ② 送った依頼撮影・作図: 編集部
  2. 名前とメールアドレスが未設定と言われたら、設定する

    Git では、コミットに作成者の名前とメールアドレスを記録します。編集部の環境ではこれを設定していなかったため、コミットができず、Claude が設定のコマンドを案内しました。

    「まだ何もコミットできていません。git にコミットの作成者(名前とメールアドレス)が設定されていないためです。」という報告と、! git config --global user.name と ! git config --global user.email のコマンド、3 つのコミットの予定が表示されている
    コミットできなかったときの報告。① 作成者の名前とメールアドレスが未設定という説明 ② 設定のコマンドの案内 ③ 設定のあとに作る 3 つのコミットの予定撮影・作図: 編集部

    ①のとおり、直した内容は消えていません。Claude は「コミットに記録する名前とメールアドレスはあなたの情報なので、こちらで勝手に決めずに設定をお願いします」として、②のコマンドを案内しています。

    ②のコマンドの「あなたの名前」と「you@example.com」を自分のものに変えて、Claude Code の入力欄でそのまま実行します。行の先頭の「!」は、Claude を通さずにコマンドを実行する印です(次の章で説明します)。

    テキスト
    ! git config --global user.name "あなたの名前"
    ! git config --global user.email "you@example.com"
    
    入力欄に ! git config --global user.name に続けて名前の ハック!でAI編集部 が入力され、下に ! for shell mode と表示されている
    「!」を付けて、名前を設定するコマンドを入力したところ。① 入力したコマンド ② シェルモードの表示撮影・作図: 編集部

    Claude の案内のとおり、--global を付けると、そのパソコンのすべてのリポジトリで同じ名前とメールアドレスが使われます。このリポジトリだけで使うときは、--global を外します。

  3. 設定が済んだことを伝えて、結果を確かめる

    名前とメールアドレスを設定したら、そのことを Claude に伝えます。Claude が、修正ごとにコミットを作ります。

    「修正ごとに3つのコミットに分けて、main ブランチにコミットしました。」という報告と、c6a45ad・c29612c・a72aaf1 の 3 つのコミットの表、作成者がハック!でAI編集部であること、リモートへのプッシュはしていないことが表示されている
    コミットが済んだときの報告。① 作った 3 つのコミット ② 作成者 ③ リモートにはプッシュしていないという報告撮影・作図: 編集部

    編集部の環境では、①のように 3 つのコミットに分かれ、それぞれに内容がわかるメッセージが付きました。②の作成者は、設定した名前とメールアドレスです。③のとおり、リモート(GitHub などのサーバー)へのプッシュ(送ること)はしていません。

    このときは auto モードでした。画像のいちばん上の「Allowed by auto mode classifier」は、auto モードの分類器が直前の操作を許可したという表示です。

報告には「ブラウザでの動作確認はまだです」とも書かれています。Claude が確かめたことと、まだ確かめていないことを読み分けて、残りは自分で確かめます。

「!」で自分でコマンドを実行する

入力欄の先頭に「!」を入力すると、シェルモードになります。シェルモードでは、Claude を通さずに、ターミナルのコマンドをそのまま実行します。実行の結果は会話に入り、Claude がそれを読んで返事をします。

編集部では、コミットの履歴を git log --oneline で確かめました。

テキスト
! git log --oneline
! git log --oneline の結果として a72aaf1、c29612c、c6a45ad、d3d64d7 最初の版 の 4 つのコミットが表示され、その下に「履歴は表示どおりで、「最初の版」のあとに今回の3つのコミットが順に並んでいます。」という返事がある
「!」で git log --oneline を実行したところ。① 実行したコマンドと、その結果(コミットの履歴) ② 結果を読んだ Claude の返事撮影・作図: 編集部

①の結果では、新しいコミットが上に並びます。いちばん下の「最初の版」の上に、今回の 3 つのコミットがあります。②では、Claude が結果を読んで返事をしています。その下では、まだしていないこと(ブラウザでの確認と、リモートへのプッシュ)も挙げています。

「!」を入力すると、入力欄の下に「! for shell mode」と表示されます(3 枚目の画像の②)。公式のドキュメントでは、テストを実行する ! npm test が例に挙がっています。

ほかにも頼めること

公式のドキュメントには、Git の操作を頼む例が載っています。英語の例を日本語にすると、次のようになります。

テキスト
変更したファイルを教えてください
feature/quickstart という名前のブランチを作ってください
最近の 5 件のコミットを見せてください
マージの競合の解消を手伝ってください

起動と同時に頼むこともできます。次は、公式のドキュメントにある例です(変更を、内容がわかるメッセージでコミットする)。

ターミナル
claude "commit my changes with a descriptive message"

GitHub の PR(プルリクエスト。変更を取り込んでもらうための依頼)も頼めます。Claude は GitHub CLI の gh pr create で PR を作ります。変更を見直したいときは、/diff(作業中の変更を確かめる)、/code-review(不具合がないかを確かめる。/review でも同じ)、/security-review(安全の面から確かめる)も使えます。

auto モードで止まる Git の操作

auto モード(第 6 回)では、Git の操作も、別の AI(分類器)が確かめてから進みます。公式のドキュメントによると、既定では次のように扱われます。

扱い Git の操作の例
止める force push(リモートの履歴を強制的に書き換えるプッシュ)、git reset --hard など、まだコミットしていない作業を捨てる操作、この会話で作っていないコミットの --amend(書き換え)
確認なしで進める 作業中のリポジトリへのプッシュ、依頼に合った PR の作成

push の前に必ず確かめたいときは、許可ルールの ask(確認する)に Bash(git push *) を入れます。自分の設定(~/.claude/settings.json)か、プロジェクトの設定(.claude/settings.json)に書きます。

JSON
{
  "permissions": {
    "ask": [
      "Bash(git push *)"
    ]
  }
}

ask のかわりに deny に入れると、プッシュそのものを止められます。

コミットに付く「Co-Authored-By」の行

Claude Code が作るコミットには、既定で Co-Authored-By の行(Claude と一緒に作ったことを示す行)が付きます。PR の説明にも、同じような一文が付きます。付けたくないときは、設定の attribution で変えられます。次のように false にすると、すべて付かなくなります(v2.1.281 以降)。

JSON
{
  "attribution": false
}

次の回では、VS Code の拡張機能で Claude Code を使う方法を説明します。

参考にした公式の情報

XFacebookはてブLINE

この記事は、ハック!でAI編集部が AI を使って執筆しました。画面の画像は、編集部の検証環境で実際に操作して撮影したものです(引用の画像は出典を記載しています)。内容の誤りはお問い合わせからお知らせください。

連載

Claude Code 入門
全 12 回の目次
  1. 1Claude Code とは? できること・使える場所・料金
  2. 2Claude Code をインストールする(Mac・Windows・Linux)
  3. 3Claude Code を初めて起動する(テーマ・ログイン・フォルダの信頼)
  4. 4Claude Code に最初の質問をする(@ でファイルを指定)
  5. 5Claude Code にファイルを直してもらう(変更の確認と許可)
  6. 6権限モードを使い分ける(auto・manual・accept edits・plan)
  7. 7CLAUDE.md でルールを覚えさせる(/init・/memory)
  8. 8よく使うコマンドとキー操作
  9. 9Git と組み合わせる(コミットを頼む・「!」でコマンド)(この記事)
  10. 10Claude Code を VS Code で使う(拡張機能)
  11. 11画面の画像を渡して Claude Code に直してもらう
  12. 12Claude Code がうまく動かないときの対処