カテゴリー / 連携・活用

Claude Code × Git 実践ガイド:コミット・PR・コンフリクト対応まで

この記事の目次

Claude CodeでGitを使うと何が変わるのか?

「コミットメッセージを考える」「ブランチを切って作業を始める」「PRの説明文をまとめる」。こうした一つひとつの作業を、Claude Codeに自然言語で指示するだけで進められるようになる。ただし操作そのものを自動化する道具であって、レビューの責任を肩代わりする道具ではない。

Gitは元々、AIの提案であれ人間の手作業であれ「変更を巻き戻せる」状態を保つ仕組みとして機能してきた。Claude Codeがコードを編集した後にコミット前の差分(diff)を確認できるのも、この性質に支えられている。つまりClaude Code側の便利さと、Git側の「いつでも戻れる」という安全弁は別のレイヤーの話で、両方を理解しておくと過度な期待も過度な警戒も避けやすい。

基本的な起動方法やコマンド体系はClaude Codeの使い方ガイドに整理してあるため、ここではGit連携に絞って解説する。Claude Code自体が何かをまだ把握していない場合はClaude Codeとは何かを先に読むと理解しやすい。

導入前に判断しておきたい3つの軸

同じ「PRを自動生成する」という操作でも、個人で使うリポジトリと複数人が触るチームのリポジトリとでは、求められる確認の重さが違う。導入前には「個人利用かチーム利用か」「既存のGit運用フローとどう整合させるか」「リポジトリの機密度はどの程度か」の3軸で整理しておくとぶれにくい。

この3軸を先に決めておくと、後述するコミット規約やセキュリティ設定をどこまで厳格にするかも自然に決まる。

判断軸 個人利用が中心の場合 チーム利用が前提の場合
レビュー体制 自分自身が最終確認者になる レビュアーを立て、承認フローを通す前提で設計する
ブランチ戦略 命名や粒度は自由度が高い 既存のブランチ運用ルールとの整合を優先する
リポジトリの機密度 個人プロジェクトなら比較的低いことが多い 顧客情報や社内システムに関わる場合は取り扱いを事前に定義する

チームでの運用ルール整備まで踏み込んで検討したい場合は、Claude Codeの運用ルール設計が参考になる。

セットアップの基本手順

クローンしたばかりのリポジトリでClaude Codeを開いたら、まず何を確認すればよいか。Gitのインストールとユーザー情報の設定、リポジトリの初期化またはクローン、Claude Codeの起動という順序を踏めば大きくつまずくところはない。

Git自体のインストールやユーザー名・メールアドレスの設定は一般的なGitの手順と変わらない。Claude Codeを使う際に意識しておきたいのは、作業ディレクトリがGitリポジトリのルートまたはその配下になっているかという点と、Claude Codeがそのディレクトリでファイルの読み書きやコマンド実行を行う権限を持っているかという点の2つである。既存のリポジトリで作業する場合は、クローン後にディレクトリを移動してからClaude Codeを起動する流れになる。

コミットメッセージ生成:AIに任せられる範囲と限界

git commitの前にClaude Codeへ「コミットメッセージを考えて」と頼むと、変更内容を要約したメッセージ自体はすぐに返ってくる。ただしプロジェクト固有の規約(プレフィックスの付け方や粒度の基準など)まではあらかじめ指示しておかないと反映されない。

生成されたメッセージは変更差分をもとに作られるため、何を変えたかの説明としては妥当なことが多い。一方で「なぜその変更が必要だったか」という背景や、チーム独自の書式ルール(Conventional Commitsのような規約に沿った接頭辞など)は、指示に含めなければ書式まで揃わないことが多い。個人利用であれば都度確認すれば済むが、チームで使う場合は規約をどこかに明文化しておく方が手戻りが少ない。

その明文化の置き場所として使われるのがCLAUDE.mdというプロジェクト設定ファイルで、たとえば次のように書いておくとコミットメッセージ生成時に参照されやすくなる。

## コミットメッセージ規約
- 先頭に feat / fix / docs / refactor のいずれかを付ける
- 1行目は50文字以内で変更内容を要約する
- 本文には変更理由を簡潔に記載する

CLAUDE.mdの書き方全般や他の設定項目は、CLAUDE.mdの書き方ガイドにまとめてある。

PR作成を自動化するときに押さえておきたいこと

タイトルを考え、説明文をまとめ、レビュー依頼を出す。PR作成の一連の流れはClaude Codeに任せられるが、最終的にマージするかどうかの判断は人間のレビュアーが行うという前提は崩さないことが要になる。

GitHubやGitLabといったプラットフォームでは、コマンドラインツール(GitHubならgh、GitLabならglab)経由でPR・マージリクエストを作成する操作を自然言語で指示できる。生成された説明文には変更点の要約が含まれるが、テストの実行結果やレビュー観点の網羅性まではツールが判断しているわけではない点に注意したい。CI/CD(継続的インテグレーション・継続的デリバリー)と連携させる場合の役割分担については、Claude CodeとGitHub Actionsの連携ガイドで個別に取り上げている。

ブランチ操作を自然言語で指示するときの注意点

ブランチ操作を自然言語で指示する際は、命名規則を事前に決めておくことと、どのブランチに対して操作しているかを都度確認する習慣を持つことの2点が実務上の要点になる。

「新しいブランチを作って」という曖昧な指示だけでは、命名がその都度ばらつきやすい。プロジェクトごとに命名パターン(例:機能名を含める、Issue番号を含めるなど)を決めておき、CLAUDE.mdや指示文に含めておくと安定する。また、リモートへのpushやリモートブランチの削除といった影響範囲の広い操作を指示する前には、現在どのブランチにいるかをClaude Codeに確認させ、意図したブランチであることを人間側でも見てから進める方が安全である。

コンフリクトが起きたときの安全な解消手順

mergeやrebaseの途中で<<<<<<<のような競合マーカーが出てきたら、Claude Codeに競合箇所の解析と解決案の提示までを任せ、実際にどちらの変更を残すかの最終判断は人間が行う、という役割分担にすると事故を防ぎやすい。

具体的な進め方としては、まずgit statusで競合しているファイルを確認し、Claude Codeにそのファイルの競合マーカー(<<<<<<<=======>>>>>>>)を含む内容を提示させたうえで、双方の変更意図を要約してもらう。次に、要約された内容をもとにどちらを採用するか、あるいは両方を組み合わせるかを人間が指示し、Claude Codeに実際の編集を行わせる。編集後は競合マーカーが残っていないかをgit diffで確認してからgit addし、コミットする。この一連の流れで注意すべきは、Claude Codeに「よしなに解決して」とだけ指示すると、片方の変更意図を見落としたまま統合してしまう可能性がある点で、競合の背景(なぜその変更が入ったか)を一言添えるだけでも精度が変わる。

rebaseとmergeの使い分けと、AIへの安全な指示方法

同じ「ブランチを最新化して」という指示でも、実行のされ方によっては共有ブランチの履歴を書き換えてしまうことがある。rebase(ブランチの分岐元を付け替えて履歴を直線化する操作)とmerge(2つのブランチの履歴をそのまま統合する操作)は、共有ブランチの履歴をどう保ちたいかで使い分け、force push(リモートの履歴を強制的に書き換える操作)を伴う指示は必ず内容を確認してから実行させる。

比較軸 rebase merge
履歴の形 直線的になり読みやすい 分岐がそのまま残る
共有ブランチでの向き 既に他者がpull済みの履歴を書き換えると混乱を招きやすい 履歴を書き換えないため共有ブランチでも扱いやすい
AIへの指示時の注意点 「force pushが必要になる可能性がある」と事前に確認を求める 通常のgit mergeはforce pushを伴わないため相対的にリスクが低い

Claude Codeにrebaseを指示する場合は、実行前に「force pushが必要になりますか」と尋ね、必要であれば対象ブランチが自分専用の作業ブランチであることを確認してから進めるとよい。共有ブランチに対する強制的な履歴書き換えは、他の作業者の変更を消してしまう恐れがあるため、個人のブランチ以外では避けるのが基本的な考え方になる。

セキュリティ面で最初に決めておくべきこと(APIキー・トークン・.gitignore)

APIキーが一度でもコミット履歴に残ると、削除しても完全に消し去るのは難しい。Git連携を始める前に、秘密情報をコミットに含めない仕組みと、.gitignore(Gitの追跡対象から除外するファイルを指定する設定)の設計、外部サービス連携に使うトークンの権限範囲(スコープ)を絞ることの3点を先に決めておくと、後で慌てずに済む。

.gitignoreには.envや認証情報を含む設定ファイルを最初から含めておき、Claude Codeが新しいファイルを作成した際にも追跡対象から漏れないようにしておく。GitHubやGitLabと連携する際に発行するパーソナルアクセストークン(PAT)は、リポジトリの読み書きなど必要最小限の権限だけに絞って発行し、全リポジトリへのアクセス権を持つトークンを日常的な作業に使い回さないようにする。これらの設定は一度決めてしまえば、後述するGitLabなど他プラットフォームでも「権限を絞る」という考え方自体は共通して適用できる。より広い範囲のセキュリティ論点(社内ルール整備や監査の考え方など)はClaude Codeのエンタープライズセキュリティガイドに譲る。

AIが生成した変更をレビューするときの着眼点

差分が数百行に膨らんでいても、確認すべき観点は変わらない。意図しない削除がないか、機密情報が混入していないか、テストが変更内容をきちんと網羅しているか。AIが生成した変更をレビューする際はこの3点を差分確認の習慣として持っておきたい。

以下は差分レビュー時に確認しておきたい項目の例で、コミット前のチェックリストとして手元で使えるようにまとめたものである。

□ 変更していないはずのファイルが差分に含まれていないか
□ 削除された行が意図した削除か(誤って必要な処理を消していないか)
□ APIキーやパスワードなどの秘密情報が新規行に含まれていないか
□ 変更したロジックに対応するテストが追加・更新されているか
□ コミットメッセージが実際の変更内容と一致しているか

このチェックリストは、AIが生成したコードに限らず人間が書いたコードのレビューにもそのまま使えるが、AIが生成した場合は変更範囲が想定より広くなりやすい傾向があるため、特に1点目と2点目を意識して見る価値がある。

既存のGit運用ツール(pre-commit hooksなど)との共存

lintやテストを自動で走らせるpre-commit hooksをすでに導入している場合でも、設定を変える必要はない。既存ツールはそのまま動作し続けるため、Claude Codeがコミットを実行した際にもチェックが働く形で共存できる。

Claude Codeがgit commitを実行する場合も、リポジトリに設定されているpre-commit hooksは通常のコミットと同様に呼び出される。したがってhooksでlintやテストのエラーが出た場合、Claude Codeはそのエラー内容を受け取って修正を試みることができる。ただしhooksの実行に時間がかかる場合や、対話的な確認を求めるhooksが設定されている場合は挙動が変わることがあるため、hooksの設計自体を見直したい場合はClaude Codeのフック機能ガイドで詳しく解説している。

GitHub以外(GitLab・Bitbucketなど)への対応状況

GitLabについては公式のコマンドラインツール(glab)を介した操作が案内されており、GitHub向けの操作と近い形でブランチ作成やマージリクエストの作成を進められる。ただし細かな挙動の違いやBitbucketなど他のプラットフォームでの対応状況は、本記事執筆時点で筆者が実機で検証できていないため、断定的な記載は避ける。

利用する前に、各プラットフォームの公式ドキュメントで対応しているコマンドや認証方式を確認しておくことをすすめる。前段で触れたトークンのスコープを絞るという考え方は、GitHubであってもGitLabであっても、あるいは他のプラットフォームであっても共通して当てはまる基本方針である。

インタラクティブなGitコマンドが使えないときの代替手段

git rebase -iのようにテキストエディタを開いて対話的に操作するコマンドは、AIエージェントが実行する非対話型のコマンド実行環境では意図通りに動かないことがあるため、必要な操作を個別の非対話コマンドに分解して指示する方法が代替になる。

たとえば複数のコミットをまとめたい場合、対話的なrebaseを直接実行させる代わりに、git logで対象コミットを確認したうえでgit reset --softgit commitを組み合わせて指示するといった形で、非対話的に完結する手順に置き換えられる。この分野は環境やツールのバージョンによって挙動が変わりやすいため、想定通りに動かない場合は無理に押し通さず、通常のターミナルで自分の手で操作する選択肢も残しておきたい。

よくある質問

コミット前の差分を人間が直接確認したい場合は、Claude Codeに任せる前に自分でgit diffを実行して見るか、Claude Codeに「差分を要約せずそのまま表示して」と指示すれば、加工されていない生の差分を確認できる。

複数のリポジトリを並行して扱う場合は、Claude Codeの作業ディレクトリがどのリポジトリを指しているかを都度意識する必要がある。誤って別リポジトリのつもりで操作しないよう、作業を切り替える際は現在のディレクトリとブランチを確認してから指示する習慣が安全につながる。

コミット履歴を書き換えた後にpushでエラーが出た場合は、リモートの履歴と自分のローカル履歴がずれているサインであることが多い。この状況で--forceを機械的に指示するのではなく、なぜずれが起きたのかをまず確認してから対応方針を決める方が確実だ。

まとめ:個人利用からチーム運用へ、次に検討すべきこと

ここまでの内容で、Claude Code上でのセットアップからコミット・PR・ブランチ操作、コンフリクト対応、セキュリティの基本設定までは自分の手で進められる状態になったはずである。

個人利用の範囲であれば、ここで扱った内容と各自の判断で十分に運用できる。一方で、チームで使う場面になると「コミット規約をどう揃えるか」「レビュー基準をどう統一するか」「トークンやアクセス権をどう管理するか」といった運用ルールの整備が次の検討課題になりやすい。この段階の整理にはClaude Codeの運用ルール設計エンタープライズセキュリティガイドが役立つ。AI駆動ラボ(月額1,980円からの学習コミュニティ)では、こうした運用の型を講座として扱っている。