CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/Claude Code
Claude Code/2026-03-30中級

Claude Code で Git コンフリクトを自動解決する方法 — マージ戦略とリベース対応

Claude Code を使って Git のマージコンフリクトを素早く解決する方法を解説。3ウェイマージの理解からリベース時の競合対応、複雑なコンフリクトの自動解決テクニックまで、実践的なコマンド例付きで紹介します。

claude-code129git16conflict-resolutionmergerebaseteam-development2

Git コンフリクトの解決に Claude Code を活用する理由

チーム開発において、Git のマージコンフリクト(競合)は避けて通れない課題です。特に複数人が同じファイルを同時に編集するプロジェクトでは、git mergegit rebase のたびにコンフリクトが発生し、その解決に時間を取られることが珍しくありません。

Claude Code はターミナルから直接操作できるAIコーディングエージェントであり、コードの文脈を深く理解した上でコンフリクトを解決できます。単純なテキストの差分比較ではなく、「このコードが何をしているか」を理解して適切なマージ結果を提案してくれる点が、従来のマージツールとの大きな違いです。

マージコンフリクトが発生する仕組み

コンフリクトの解決方法を学ぶ前に、なぜコンフリクトが起きるのかを簡単に整理しておきましょう。

Git は3ウェイマージ(3-way merge)というアルゴリズムを使用しています。これは、2つのブランチの変更内容と、それらの共通の祖先(base)を比較して自動的にマージを行う仕組みです。

  • 共通祖先(base): 2つのブランチが分岐した時点のファイル内容
  • 自分のブランチ(ours): 現在チェックアウトしているブランチの変更
  • 相手のブランチ(theirs): マージしようとしているブランチの変更

同じ行が両方のブランチで異なる変更をされている場合、Git は自動マージできず、手動解決を求めます。このとき、ファイル内にコンフリクトマーカー(<<<<<<<=======>>>>>>>)が挿入されます。

# コンフリクトマーカーの例
<<<<<<< HEAD
const API_ENDPOINT = "https://api.example.com/v2";
=======
const API_ENDPOINT = "https://api.example.com/v3";
>>>>>>> feature/update-api

この例では、HEAD(現在のブランチ)が v2 を使い、feature/update-api ブランチが v3 を使おうとしていて、どちらを採用すべきか Git が判断できない状態です。

Claude Code でコンフリクトを解決する基本手順

ステップ 1: コンフリクトの状態を確認する

まず、マージやリベースを実行してコンフリクトが発生したら、Claude Code にその状態を伝えます。

# マージ実行後にコンフリクトが発生した場合
git merge feature/update-api
# CONFLICT (content): Merge conflict in src/config.ts
 
# Claude Code に解決を依頼
claude "git merge でコンフリクトが発生しました。すべてのコンフリクトを確認して解決してください"

Claude Code は以下のステップを自動的に実行します。

  • git status でコンフリクトファイルの一覧を取得
  • 各ファイルの差分を確認
  • コンフリクトマーカーを解析して適切な解決策を提案
  • ファイルを編集してコンフリクトを解消

ステップ 2: 解決内容のレビュー

Claude Code が提案した解決策は、必ず目視で確認しましょう。以下のようにプロンプトを工夫すると、より正確な解決が得られます。

# 解決方針を明示するプロンプト
claude "git merge のコンフリクトを解決してください。
方針:
- feature ブランチの変更を優先
- ただし、型定義の変更は main ブランチ側を維持
- テストファイルは両方の変更を統合"

ステップ 3: コミットして完了

コンフリクトが解消されたことを確認し、マージコミットを行います。

# 解決されたファイルをステージング
git add .
 
# マージコミット
git commit -m "Merge feature/update-api: API v3 移行とテスト統合"

リベース時のコンフリクト対応

git rebase はマージとは異なり、コミットごとにコンフリクトが発生する可能性があります。特にコミットの多いブランチをリベースすると、同じファイルで何度もコンフリクトが起きることがあります。

# リベース開始
git rebase main
 
# コンフリクト発生時
# CONFLICT (content): Merge conflict in src/utils/parser.ts
# error: could not apply abc1234... Add parser utility
 
# Claude Code に解決を依頼
claude "リベース中にコンフリクトが発生しました。
現在のコミット: abc1234 (Add parser utility)
src/utils/parser.ts のコンフリクトを解決して、
git rebase --continue で進められる状態にしてください"

リベースでは、1つのコンフリクトを解決するたびに git rebase --continue を実行する必要があります。Claude Code にこのフローを伝えておくと、スムーズに進行できます。

# リベースの連続コンフリクト解決を効率化
claude "リベースのコンフリクトを1つずつ解決していってください。
各コンフリクト解決後に git add と git rebase --continue を実行し、
次のコンフリクトがあれば続けて解決してください。
すべて完了したら結果を報告してください"

実践テクニック: 複雑なコンフリクトの解決パターン

パターン 1: 関数のリネームと内容変更が同時に起きた場合

一方のブランチが関数名を変更し、もう一方が関数の実装を変更するパターンは、手動解決が特に難しいケースです。

claude "コンフリクトの詳細分析をお願いします。
- main ブランチでは processData() が transformData() にリネームされている
- feature ブランチでは processData() にバリデーションロジックが追加されている
両方の変更を反映して、transformData() に新しいバリデーションロジックも含めてください"

パターン 2: package.json や lock ファイルのコンフリクト

依存関係ファイルのコンフリクトは頻繁に発生しますが、手動で解決するとバージョンの不整合が起きやすい部分です。

# package.json のコンフリクト解決
claude "package.json のコンフリクトを解決してください。
方針: 両方のブランチで追加された依存関係をすべて含め、
バージョンが異なる場合は新しい方を採用してください"
 
# lock ファイルは再生成が安全
npm install
# または
yarn install

パターン 3: 設定ファイルの構造変更

TypeScript の tsconfig.json や ESLint の設定ファイルなど、JSON/YAML 構造の変更がコンフリクトした場合も Claude Code が有効です。

claude "tsconfig.json のコンフリクトを解決してください。
- main ブランチでは strict モードの設定が変更されている
- feature ブランチでは paths エイリアスが追加されている
JSON として正しい構造を維持しつつ、両方の変更を反映してください"

Claude Code の Hooks でコンフリクト解決を自動化する

Claude Code の Hooks 機能を使うと、コンフリクト発生時に自動的に通知を受けたり、解決のワークフローを効率化できます。

.claude/settings.json に以下のような設定を追加できます。

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "if git status --porcelain | grep -q '^UU\\|^AA\\|^DD'; then echo 'CONFLICT_DETECTED: コンフリクトファイルがあります'; fi"
          }
        ]
      }
    ]
  }
}

この設定により、Claude Code が Bash コマンドを実行した後にコンフリクト状態を自動検出できます。より高度な自動化については、Claude Code Hooks 開発ワークフロー自動化ガイド で詳しく解説しています。

コンフリクト予防のベストプラクティス

解決テクニックと同じくらい重要なのが、コンフリクトの発生自体を減らすことです。

こまめなリベース: 長期間分岐したブランチほどコンフリクトが大きくなります。git rebase main を定期的に実行して差分を小さく保ちましょう。

ブランチの粒度を細かく: 1つのブランチで複数の機能を実装すると、コンフリクトの範囲が広がります。機能ごとにブランチを分割し、こまめにマージする戦略が有効です。

CODEOWNERS ファイルの活用: 特定のファイルの変更に責任者を設定することで、同じファイルを複数人が同時に変更する確率を下げられます。

コミュニケーション: チーム内で「今どのファイルを編集しているか」を共有するだけでも、コンフリクトを大幅に減らせます。

チーム全体の Git ワークフローを整備したい場合は、Claude Code チーム開発完全ガイド でブランチ戦略やレビュー自動化の詳細を解説しています。

コンフリクト解決時に便利な Git コマンド集

Claude Code に伝える前に、状況を正確に把握するためのコマンドを覚えておくと便利です。

# コンフリクトファイルの一覧を表示
git diff --name-only --diff-filter=U
 
# コンフリクトの詳細(3ウェイ差分)を表示
git diff --cc
 
# 特定ファイルの3ウェイマージ結果を確認
git show :1:src/config.ts  # base(共通祖先)
git show :2:src/config.ts  # ours(現在のブランチ)
git show :3:src/config.ts  # theirs(相手のブランチ)
 
# マージを中断してやり直す
git merge --abort
 
# リベースを中断してやり直す
git rebase --abort

これらのコマンド出力を Claude Code に渡すことで、より正確なコンフリクト解決が可能になります。

# 3ウェイの差分情報を含めて Claude Code に依頼
claude "以下の3ウェイ差分を元にコンフリクトを解決してください:
$(git diff --cc src/config.ts)"

全体を振り返って

Claude Code を活用した Git コンフリクトの解決は、単なる時間短縮だけでなく、コードの文脈を理解した質の高いマージ結果を得られるというメリットがあります。特にリベース時の連続コンフリクトや、関数のリネームと実装変更が同時に起きるような複雑なケースで、その効果を実感できるはずです。

コンフリクト解決の方針を明確に伝えること、解決結果を必ずレビューすること、そしてコンフリクトの予防策を併用することで、チーム開発のGitワークフローを大幅に効率化できます。Gitワークフローの自動化をさらに深めたい方には、Claude Code で Git ワークフロー自動化 も実装の同じ課題に取り組んでいる方の参考になれば幸いです。

本記事のテーマをより体系的に

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Claude Code2026-04-26
Claude Code の .claude/ ディレクトリをチームで共有する設計 — Git管理する範囲と個人設定の境界
Claude Code の .claude/ をチームで共有する時、どのファイルを Git に入れて、どこを個人設定に残すか。実プロジェクトで得た境界線と .gitignore テンプレートをまとめます。
Claude Code2026-07-14
push先がいつの間にか一つ増えていた — /commit-push-pr が origin 以外のリモートへも押し始めた変更に、許可リストで蓋をする
7月14日の更新で /commit-push-pr が origin に加えて設定済みの push リモートへも自動で押すようになりました。便利な一方、ミラーやバックアップ用の第二リモートを持つ環境では、意図しない push が静かに増えます。どのリモートへ押し得るかを棚卸しし、許可リスト外の push を pre-push フックで止め、無人実行でも安全に回す設計を実装込みで整理しました。
Claude Code2026-06-10
git add -A が .bak バックアップまで巻き込む — in-place 修正スクリプトと自動コミットの落とし穴
sed -i や自作の --fix スクリプトが残す .bak バックアップを git add -A が無言で取り込み、本番リポジトリに混入させてしまう問題。なぜ気づきにくいのか、scoped add と .gitignore でどう塞ぐかを実例で整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →