無料活用テクニック

Claude CodeのGit操作自動化:コミット・PR作成を一括処理する

·19 min read·Nexeed Lab
Claude CodeClaude活用テクニック

Claude CodeのGit操作自動化機能を使い、コミットメッセージ生成・ブランチ管理・PR作成まで一括処理する実践テクニックを解説します。

Claude CodeのGit操作自動化:コミット・PR作成を一括処理する

はじめに:「Gitの作業、毎回しんどくないですか?」

コードを書き終えたあとの作業、実は地味に疲れませんか?

「どのファイルを変更したっけ?」「コミットメッセージ、何て書けばいいんだろう」「PRの説明文、また一から書かなきゃ…」

こんな繰り返しの作業を毎日こなしているエンジニアは少なくないはずです。

Claude Codeには、こういったGit周りの定型作業を大幅に効率化できる機能が揃っています。 ただ「コードを書いてもらう」だけでなく、変更内容を理解した上でコミットメッセージを生成し、ブランチを管理し、Pull Requestまで作成するという一連のフローをAIに任せられるのです。

この記事では、Claude CodeのGit操作自動化に絞って、実際のコマンドや設定例を交えながら解説します。 「Gitの作業が面倒」と感じているすべての開発者に向けて、すぐに使えるテクニックをお届けします。


Claude CodeのGit操作能力:何ができるのか?

Claude Codeは、ターミナル上でシェルコマンドを実行できる環境を持っています。 これは単にコードを生成するだけでなく、実際にgitコマンドを実行して結果を確認し、次のアクションを判断できるということを意味します。

Claude Codeが対応しているGit操作の主なものを整理しましょう。

ステージング・コミット操作

  • git diff の解析: 変更内容を読み取り、何が変わったかを理解する
  • git add の選択的実行: 関連する変更をまとめて論理的なまとまりでステージング
  • コミットメッセージの自動生成: Conventional Commits形式など、プロジェクト規約に沿ったメッセージを作成

ブランチ管理

  • ブランチの作成・切り替え: 作業内容に応じた適切なブランチ名を提案・実行
  • マージ・リベースの補助: コンフリクト発生時の解消手順を案内
  • 不要ブランチのクリーンアップ: マージ済みブランチの一括削除

Pull Request作成

  • 差分の要約: mainブランチからの変更点を自動的にまとめる
  • PRテンプレートへの自動入力: プロジェクトのPRテンプレートに沿って記述
  • GitHub CLIとの連携: gh コマンドを使ってブラウザを開かずにPRを作成

これらを組み合わせることで、コードの変更からPRの作成まで、ほぼノンストップで進められます。


実践1:差分を読み取り、コミットメッセージを自動生成する

最もシンプルかつ効果的な使い方から始めましょう。

基本的な指示の出し方

Claude Codeを起動した状態で、以下のように指示するだけです。

現在のgit diffを確認して、Conventional Commits形式でコミットしてください。
変更内容ごとに複数のコミットに分けて、それぞれ適切なメッセージをつけてください。

これだけで、Claude Codeは次のような処理を自動的に行います。

  1. git statusgit diff を実行して変更内容を把握する
  2. 変更を論理的なグループに分類する
  3. 各グループを git add -p などで選択的にステージングする
  4. Conventional Commits規約(feat:, fix:, docs:, refactor: など)に沿ったメッセージを生成してコミットする

実際にClaude Codeが実行するコマンドのイメージは以下のようになります。

# Claude Codeが内部的に実行するコマンド例
git status
git diff

# 変更を分析した上で、論理的なまとまりでコミット
git add src/components/Header.tsx src/components/Nav.tsx
git commit -m "feat(ui): ヘッダーコンポーネントにレスポンシブ対応を追加"

git add src/styles/globals.css
git commit -m "style: モバイル向けブレークポイントを調整"

git add tests/Header.test.tsx
git commit -m "test: ヘッダーコンポーネントのスナップショットテストを追加"

CLAUDE.mdでコミット規約を事前に設定する

プロジェクトごとにコミットメッセージのルールが異なる場合は、CLAUDE.md に規約を記述しておくと、毎回指示しなくて済みます。

# CLAUDE.md

## Git規約

### コミットメッセージの形式
以下のConventional Commits形式を必ず使用すること:
- feat: 新機能の追加
- fix: バグ修正
- docs: ドキュメントのみの変更
- style: コードの意味に影響しない変更(スペース、フォーマットなど)
- refactor: バグ修正でも新機能追加でもないコードの変更
- test: テストの追加・修正
- chore: ビルドプロセスや補助ツールの変更

### コミット粒度のルール
- 1コミット = 1つの論理的な変更
- 複数ファイルを変更した場合でも、同じ目的の変更は1コミットにまとめる
- UIの変更とテストの変更は別コミットに分ける

### ブランチ命名規則
- feature/[issue番号]-[簡単な説明]
- fix/[issue番号]-[バグの内容]
- docs/[ドキュメントの内容]

このようにCLAUDE.mdに記述しておくと、Claude Codeはプロジェクトのルールを自動的に読み込み、毎回の指示なしに規約に沿ったコミットを行います。


実践2:ブランチ管理の自動化

作業開始時のブランチ作成を自動化する

新しい機能開発を始めるとき、ブランチ作成からコミットの準備まで一気に進められます。

issue #42「ユーザーのプロフィール画像アップロード機能」の実装を始めます。
適切なブランチを作成して、作業を開始してください。

Claude Codeはこの指示から以下を実行します。

# 現在のブランチ状態を確認
git branch
git status

# mainブランチを最新に更新
git checkout main
git pull origin main

# 命名規則に沿ったブランチを作成
git checkout -b feature/42-profile-image-upload

# 作業開始を確認
echo "ブランチ feature/42-profile-image-upload を作成しました。作業を開始してください。"

コンフリクト発生時の対応

リベースやマージ時にコンフリクトが発生した場合も、Claude Codeに任せられます。

mainブランチの最新変更をこのブランチに取り込んでください。
コンフリクトが発生した場合は、私のブランチの変更を優先しつつ、
既存の機能を壊さない形で解消してください。

Claude Codeは、コンフリクトが発生したファイルを開き、両方の変更内容を理解した上で適切なマージ結果を提案します。 自動解消が難しい場合は、「このファイルの○行目〜○行目はどちらを採用しますか?」と確認を求めてくれます。


実践3:GitHub CLIを使ったPR自動作成

最も時間を節約できるのが、Pull Requestの自動作成です。 GitHub CLI(gh)を事前にインストール・認証しておくことで、ブラウザを開かずにPRを作成できます。

GitHub CLIのセットアップ

# macOSの場合
brew install gh

# GitHub認証
gh auth login

PRテンプレートの用意

プロジェクトに .github/pull_request_template.md を用意しておきましょう。

## 変更の概要
<!-- この変更で何をしたかを簡潔に記述 -->

## 変更の理由・背景
<!-- なぜこの変更が必要だったかを記述 -->

## 変更内容の詳細
<!-- 主要な変更点をリストアップ -->
- 

## テスト内容
<!-- どのようなテストを行ったか -->
- [ ] ユニットテストを追加・更新した
- [ ] 手動でUIの動作確認を行った
- [ ] 既存テストがすべてパスすることを確認した

## スクリーンショット(UIの変更がある場合)

## 関連するIssue
Closes #

Claude CodeへのPR作成指示

テンプレートを用意した上で、次のように指示します。

現在のブランチの変更内容をまとめて、mainブランチへのPull Requestを作成してください。
.github/pull_request_template.md のテンプレートを使って、
変更内容を具体的に記述してください。
レビュアーにはreview-teamを指定してください。

Claude Codeが実行するコマンドのイメージは以下の通りです。

# mainとの差分を確認
git log main..HEAD --oneline
git diff main...HEAD --stat

# PR本文を生成してgh コマンドで作成
gh pr create \
  --title "feat(profile): ユーザープロフィール画像アップロード機能を追加 (#42)" \
  --body "## 変更の概要
ユーザーがプロフィール画像をアップロード・更新できる機能を実装しました。

## 変更の理由・背景
issue #42 で要望のあった、ユーザープロフィールのカスタマイズ機能の一部として実装しました。

## 変更内容の詳細
- S3へのファイルアップロード処理を実装(`src/lib/s3.ts`)
- プロフィール編集ページにアバター変更UIを追加
- アップロード済み画像のプレビュー表示機能を追加
- 画像サイズバリデーション(5MB以下)を実装

## テスト内容
- [x] ユニットテストを追加・更新した
- [x] 手動でUIの動作確認を行った
- [x] 既存テストがすべてパスすることを確認した

## 関連するIssue
Closes #42" \
  --reviewer review-team \
  --base main

これで、コミットからPR作成まで、テキストで指示するだけで完結します。


実践4:定期的なブランチクリーンアップを自動化する

長期間開発を続けると、マージ済みのブランチがどんどん溜まっていきます。 Claude Codeを使えば、安全なブランチのクリーンアップも任せられます。

マージ済みのローカルブランチとリモートブランチを一覧表示して、
削除しても問題なさそうなものを削除してください。
mainとdevelopブランチは削除しないでください。

Claude Codeは慎重に確認を行いながら進めます。

# マージ済みのローカルブランチを確認
git branch --merged main

# リモートのマージ済みブランチを確認
git branch -r --merged main

# 削除対象のブランチを確認(mainとdevelopは除外)
# 安全な削除の実行
git branch -d feature/38-search-functionality
git branch -d fix/40-login-redirect-bug
git branch -d docs/update-readme

# リモートブランチの削除(確認後)
git push origin --delete feature/38-search-functionality
git push origin --delete fix/40-login-redirect-bug

実際には、Claude Codeは削除する前に「以下のブランチを削除しようとしています。問題ありませんか?」と確認を求めることが多いです。 誤って重要なブランチを削除しないよう、安全に進めてくれます。


実践5:コミット履歴の整理(インタラクティブリベース)

PRレビューの前にコミット履歴をきれいに整理したい場面があります。 Claude Codeはインタラクティブリベースの支援も行えます。

直近5つのコミットを見直して、WIPコミットをまとめ、
コミット履歴を整理してください。
mainブランチへのプッシュ前にコミット履歴をきれいにしたいです。

Claude Codeはまずコミット履歴を確認します。

# 直近のコミット履歴を確認
git log --oneline -10

# 結果例:
# a1b2c3d WIP: とりあえず保存
# e4f5g6h feat: ファイルアップロード処理を実装
# i7j8k9l fix: 修正
# m0n1o2p feat: UIコンポーネントを追加
# q3r4s5t WIP: 作業中

この履歴を見て、Claude Codeは「WIP」や「修正」などの雑なコミットを特定し、git rebase -i を使って整理する手順を提案・実行します。 最終的には意味のあるコミット単位にまとめられ、レビュアーが理解しやすい履歴が出来上がります。

注意: インタラクティブリベースはコミット履歴を書き換えます。 すでにリモートにプッシュ済みのブランチで実行する場合は git push --force-with-lease が必要になります。 Claude Codeは通常この点を事前に警告してくれますが、チームで共有しているブランチでは慎重に行いましょう。


よくあるトラブルと対処法

Claude Codeがgitコマンドの実行を躊躇するケース

Claude Codeは安全を優先するため、破壊的な操作git reset --hardgit push --force など)は確認なしに実行しません。 これは正しい動作です。

意図的に実行したい場合は、明示的に指示します。

直前のコミットを取り消してステージング済みの状態に戻してください。
作業ファイルは保持したままにしてください(git reset --soft HEAD~1 と同等の操作)。

大量のファイル変更がある場合

変更ファイルが多すぎると、Claude Codeがすべてのdiffを一度に処理できないことがあります。 そのような場合は、ディレクトリ単位で分けて指示しましょう。

src/components/ 以下の変更だけを対象に、コミットを作成してください。
他のディレクトリの変更は今は含めないでください。

.gitignoreの管理もClaude Codeに任せる

プロジェクトに応じた .gitignore の管理もClaude Codeが得意とするタスクです。

このNext.jsプロジェクトに適した.gitignoreファイルを最新の内容に更新してください。
現在コミットされていないはずのファイルが含まれていないか確認してください。

まとめ:Claude CodeをGitの頼れるパートナーに

この記事で紹介したClaude CodeのGit操作自動化テクニックを整理します。

  • コミットメッセージ自動生成: git diff を解析して規約に沿ったメッセージを生成
  • CLAUDE.mdによる規約の事前設定: プロジェクトのGit規約を記述して毎回の指示を省略
  • ブランチ管理の自動化: 命名規則に沿ったブランチ作成・コンフリクト解消の補助
  • GitHub CLIと連携したPR自動作成: PRテンプレートを活用した詳細なPR説明文の生成
  • マージ済みブランチの自動クリーンアップ: 安全確認付きでブランチを整理
  • コミット履歴の整理: インタラクティブリベースの補助でレビュー前の履歴を整形

これらのテクニックを組み合わせると、コードの変更からPRのオープンまで、テキスト指示だけで完結できるようになります。

「コードは書けた、でもGitの作業が面倒…」という時間とストレスを大幅に削減できます。

まずは一番シンプルな「git diffを見てコミットしてください」という指示から始めてみてください。 Claude Codeがどれだけ変更内容を正確に理解してメッセージを生成するか、驚くはずです。

CLAUDE.mdを整備しながら少しずつ使い方をカスタマイズしていくことで、あなたのプロジェクトに完全にフィットした自動化環境が育っていきます。 Gitの定型作業から解放されて、本来のコーディングに集中する時間を取り戻しましょう。


参考資料

この記事をシェア

XFacebookはてブ