コンテンツにスキップ
GitTree

Git と AI エージェント

AI エージェント用の Git ワークツリー: Claude Code と Codex を並行して実行する

git ワークツリーは、すべての AI コーディング エージェントに 1 つのリポジトリ内に独自のフォルダーとブランチを与えます。ここでは、エージェントごとに 1 つを作成し、Git GUI でそれらを追跡し、衝突せずに結果をマージする方法を示します。

作者 Kodmora更新されました 3 分で読みました
GitTree のコミット グラフの下にドッキングされた組み込みターミナル

git ワークツリー は、同じリポジトリにリンクされた追加の作業フォルダーです。独自のチェックアウトされたブランチ、独自のステージング領域、および独自のファイルがあり、すべてのワークツリーが同じコミット、ブランチ、リモートを共有します。これにより、git worktree は、Claude Code や Codex などの AI コーディング エージェントを並列実行する最も簡単な方法になります。各エージェントに独自のワークツリーを与えると、互いのファイルに触れることなく、また 2 番目のクローンを作成することなく、同時に編集、構築、テスト、コミットを行うことができます。

1 つのフォルダー内の 2 つのエージェントが 1 つの作業ツリーを共有します。1 人はファイルに対してテストを実行し、もう 1 人は書き換え途中で、どちらかによる git checkout がもう一方の下に地面を移動します。個別のクローンはそれを回避しますが、独自のフェッチが必要です。ワークツリーでは、1 つのリポジトリを管理する個別のフォルダーが提供されます。

git ワークツリーとは何か、およびワークツリーが共有するもの

すべてのリポジトリは 1 つのワークツリー (メイン ワークツリー) から始まります。これは、git clone または git init が作成したフォルダーです。 git worktree add は、同じ .git データに追加された追加のフォルダーである リンクされたワークツリー を作成します。 公式 git ワークツリー ドキュメント によると、リンクされたワークツリーは、HEAD やインデックスなどのワークツリーごとのファイルを除くすべてをリポジトリと共有します。実際には:

各ワークツリーが保持するものとすべてのワークツリーが共有するもの
リポジトリの一部自分のコピーですか、それとも共有ですか?並行エージェントにとっての意味
作業ファイル自分のコピーあるエージェントの編集によって別のエージェントのファイルが上書きされることはありません
HEAD とチェックアウトされたブランチ自分のコピー各エージェントは独自のブランチに留まります
インデックス (ステージング領域)自分のコピーあるワークツリーの git add は、別のワークツリーでは何もステージングしません
コミットとオブジェクト共有ワークツリーで行われたコミットは、すべてのワークツリーで表示されます
ブランチとタグ共有フェッチせずにメインフォルダーからエージェントのブランチをマージできます
リポジトリ構成デフォルトで共有されるリモートとエイリアスはすべてのワークツリーに適用されます

エージェントにとって重要なルールが 1 つあります。デフォルトでは、git worktree add は別のワークツリーですでにチェックアウトされているブランチのチェックアウトを拒否します。したがって、すべてのエージェントには独自のブランチが必要であり、それはまさにレビュー時に必要なものです。

git worktree add でワークツリーを作成する方法

リポジトリ内からコマンドを実行し、新しいワークツリーをリポジトリ内ではなく隣に配置します。これにより、エディタ、検索ツール、エージェントが、あるチェックアウトのインデックスを別のチェックアウト内から作成することがなくなります。これにより、2 つのワークツリーが作成され、それぞれが main で始まる新しいブランチに作成されます。

cd ~/code/myapp
git worktree add -b agent/auth-refactor ../myapp-auth main
git worktree add -b agent/flaky-tests ../myapp-tests main
git worktree list

-b はブランチを作成し、パスは新しいフォルダー、最後の引数は開始元のコミットです。 git worktree list は、すべてのワークツリーをそのフォルダー、コミット、ブランチとともに出力します。すでに存在するブランチを使用するには、-b: git worktree add ../myapp-review feature/login を省略します。

ワークツリーごとに 1 つの AI エージェント: 並列ワークフロー

パターンは単純です。1 つのタスク、1 つのブランチ、1 つのワークツリー、1 つのエージェント セッションです。あなたはレビュー担当者としてメイン ワークツリーに留まり、エージェントがフォルダーを共有することはありません。最も重要なのは、作業をどのように分割するかです。優れた並列タスクは次のとおりです。

  • コードのさまざまな部分 (auth/ のリファクタリングや billing/ の新しいテストなど) なので、それらのブランチが同じ行に触れることはほとんどありません。
  • 完了または未完了が明らか: 合格するはずの失敗したテスト、追加するエンドポイント、アップグレードする依存関係。
  • 一度にレビューできるほど小さい。 巨大なエージェントの差分は、それがどのフォルダーから来たものであってもレビューの問題です。

AI コーディング エージェントを git worktree と並行して実行する方法

  1. 現在の作業をコミットまたは隠します

    新しいワークツリーはコミットから開始され、メイン フォルダー内のコミットされていない変更は後に残るため、すべてのエージェントは同じコミットされた状態から開始する必要があります。

  2. タスクごとに 1 つのワークツリーを作成する

    タスクごとに git worktree add -b agent/<task> ../<repo>-<task> main を 1 回実行するか、Git GUI からワークツリーを作成します。

  3. 各フォルダを用意する

    依存関係をインストールし、プロジェクトに必要な環境ファイルをコピーしてビルドを 1 回実行すると、各エージェントが機能するチェックアウトから開始されます。

  4. 各フォルダーで 1 つのエージェントを起動します

    ワークツリーごとにターミナルを開き、そこでエージェントを起動します。たとえば、ある端末では claude、別の端末では codex が表示され、それぞれが所有する領域を指定する狭いプロンプトが表示されます。

  5. レビュー、マージ、クリーンアップ

    エージェントが終了したら、その差分を読み取り、メインのワークツリーからそのブランチをマージし、その後ワークツリーを削除してブランチを削除します。

cd ../myapp-auth && claude
cd ../myapp-tests && codex

各行を独自のターミナルで実行します。各エージェントのテストとビルドは、独自のファイルに対して実行されます。

Claude コードでの Git ワークツリーの使用

クロード コードに独自のワークツリーを手動で与えるには、プレーンな Git でワークツリーを作成し、その中で claude を開始します。次に、エージェントはそのフォルダーのみを読み取り、編集し、そのブランチにコミットします。

git worktree add ../myapp-auth -b agent/auth
cd ../myapp-auth
claude

クロード・コードの--worktreeフラグ

Claude Code はワークツリーを作成できます。 Claude Code のワークツリー ドキュメント によると、claude --worktree feature-auth (または -w) は、worktree.baseRef 設定で別途指定がない限り、リポジトリのデフォルト ブランチから分岐した、worktree-feature-auth という名前の新しいブランチの .claude/worktrees/feature-auth/ の下にワークツリーを作成します。 .worktreeinclude ファイルは、.env などの無視されたファイルを新しい各ワークツリーにコピーします。終了時に、Claude Code はクリーンなワークツリーとそのブランチを名前のないセッションから削除し、変更または新しいコミットのあるワークツリーを削除する前に質問します。

claude --worktree feature-auth

Codex CLI での Git ワークツリーの使用

Codex CLI は開始ディレクトリで動作するため、Codex セッションごとに 1 つのワークツリーが各セッションの編集、テスト、コミットを分離します。

git worktree add ../myapp-tests -b agent/tests
cd ../myapp-tests
codex

Codex アプリと Codex CLI

OpenAI の Codex アプリのワークツリー ドキュメント では、Codex が 1 つのプロジェクトで複数のチャットを実行できるようにするワークツリーについて説明しています。デフォルトでは、選択したブランチに基づいて $CODEX_HOME/worktrees に入り、ブランチではなく分離された HEAD 状態で開始します。チャット ヘッダーでは、Hand off によりワークツリーとローカル チェックアウトの間でチャットが移動され、ここでの Create ブランチによりワークツリーの作業がレビューおよびマージできるブランチに変換されます。 Codex CLI では、プロジェクト ディレクトリから codex を実行するため、作成したワークツリー内で起動します。

いずれにせよ、これらは通常の Git ワークツリーであり、git worktree list およびそれを読み取るすべての Git GUI に表示されます。

git worktree GUI: すべてのエージェントのフォルダーとブランチを追跡する

3 つまたは 4 つのエージェントが実行されている場合、難しいのは、どのブランチがどのフォルダに存在するか、どのエージェントがまだファイルを変更しているかを追跡することです。 GitTree は、このブログ (プライベート リポジトリを含む) を公開する macOS、Windows、および Linux の Git クライアントで、Claude Code または Codex が作成したワークツリーを含め、Git がすでに認識しているワークツリーを読み取り、それぞれにインターフェイス内の場所を与えます。

GitTree では、左側のパネルの WORKTREES セクションにすべてのワークツリーがリストされ、ブランチ メニューには [このブランチのワークツリーを作成] が表示されます。
GitTree では、左側のパネルの WORKTREES セクションにすべてのワークツリーがリストされ、ブランチ メニューには [このブランチのワークツリーを作成] が表示されます。
  • 左側のパネルの WORKTREES セクション。 すべてのワークツリー。最初にメインのワークツリーが表示され、そのブランチ (または切り離された場合はフォルダー) によって名前が付けられ、このタブで開いているワークツリーにはチェック マークが付いています。ロックされているワークツリー、切り離されているワークツリー、欠落しているワークツリーにはラベルが付けられます。
  • ブランチ チップ上の兄弟ワークツリー コミット グラフは、ブランチ チップ上の他のワークツリーに保持されている変更数をマークします。これにより、どのエージェントがまだ編集中かを簡単に確認できます。マーカーをクリックすると、そのワークツリーのタブが開きます。
  • 現在の場所からワークツリーを作成します。 コマンド パレットでワークツリーを作成... またはコミットでこのコミットからワークツリーを作成... では、新しいブランチまたはデタッチされたチェックアウトを選択してから、フォルダーを選択できます。 「このブランチのワークツリーを作成…」 ブランチ上で、新しいフォルダー内のそのブランチをチェックアウトします。
  • ワークツリーごとに 1 つのタブがあり、独自のターミナルがあります。 新しいタブでワークツリーを開くと、他のリポジトリと同様にワークツリーが開き、グラフの下にある組み込みターミナルが独自のシェルを備えたそのワークツリーのフォルダーで開始されるため、そこで claude または codex を開始できます。
  • ロック、移動、削除、整理、および修復。 オプションの理由でロックしたり、フォルダーを移動または削除したりできます。 Git はコミットされていない変更を含むワークツリーの削除を拒否し、ブランチは残ります。 Prune Stale Worktrees は Git が削除するものをプレビューし、Repair Worktree Links は手動で移動したワークツリーから実行して再接続します。

各アクションはすでにインストールされている Git を実行するため、結果はコマンド ラインと一致します。

git worktree コマンドとそれに相当する GitTree
タスクコマンドラインGitTreeで
作成するgit worktree add -b <branch> <path> <start>ワークツリーの作成… (コマンド パレット、コミットまたはブランチ メニュー)
リストgit worktree listWORKTREES セクションと枝の先端のマーカー
開けるcd <path>新しいタブでワークツリーを開く
ロックgit worktree lock --reason "<text>" <path>ワークツリーをロック… (理由は任意)
移動git worktree move <path> <new-path>ワークツリーを移動…
取り除くgit worktree remove <path>ワークツリーを削除…
プルーンgit worktree prune古いワークツリーを削除… (プレビュー付き)
修理git worktree repairワークツリーのリンクを修復する

GitTree の機能ページ には、アプリが実行する他のすべてのものがリストされており、Git GUI とコマンド ライン では、それぞれのアプローチがどのような場合に高速であるかを説明しています。

複数の AI エージェントの作業を統合する

ブランチが共有されるため、メイン ワークツリーには、エージェントがコミットした瞬間にすべてのエージェントのブランチが表示されます。それぞれをチームメイトからのプルリクエストのように扱います。信頼されていますが、レビューされています。

  1. 最初に差分を読んでください。 エージェントのブランチと main のハンクをハンクごとに比較し、無関係な編集、削除されたテスト、新しい依存関係を探します。
  2. 重複を確認します。 GitTree はマージ前に競合を予測し、main と競合する可能性がある場合はブランチ名の横に警告し、マージされていない他のブランチが同じファイルにアクセスする場合はヒントを表示します。これらはすべてコンピューター上で計算されます。複数のエージェント ブランチがある場合、どのマージ順序が最も影響が少ないかを示します。
  3. 履歴を整理します。 エージェントのワークツリー内で、GUI での対話型リベース を使用してチェックポイント コミットをスカッシュします。Git は、別のフォルダーでチェックアウトされているブランチをチェックアウトしません。
  4. プル リクエストをマージするか、開きます。 メイン ワークツリーからマージするか、エージェントのブランチを GitTree の main にドラッグして、プル リクエストをマージ、リベース、または開始します。
  5. 前に戻ってください。 2 人のエージェントが同じ行を変更した場合は、Git マージ競合を解決する方法 を参照してください。マージが失敗した場合は、マージ、リセット、またはリベースを元に戻す ことができます。
  6. クリーンアップします。 ワークツリーを削除し、マージされたブランチを削除します。
git switch main
git merge --no-ff agent/auth-refactor
git worktree remove ../myapp-auth
git branch -d agent/auth-refactor

AI コーディング エージェントに関する Git ワークツリーの落とし穴

  • 1 つのブランチを 2 つのワークツリーに強制します。 --force は、2 つのフォルダが 1 つのブランチをめぐって争うことを犠牲にして、Git の拒否を回避します。代わりに既存のワークツリーを開きます。 GitTree は、そのブランチがチェックアウトされている場所を示します。
  • ワークツリーがすべてを分離すると仮定します。 ワークツリーはサービスではなくファイルを分離します。同じポートで開発サーバーを起動するエージェントや、同じローカル データベースを移行するエージェントは依然として衝突するため、各ワークツリーに独自のポートとテスト データベースを与えます。
  • 手動でフォルダーを削除または移動します。 Git はすべてのワークツリーの記録を保持します。削除されたフォルダーのレコードは、git worktree prune (または、ずっと後に Git の自動クリーンアップ) によって削除されるまで残ります。 git worktree repair は、移動したフォルダー内で実行され、フォルダーを再接続します。常にマウントされているわけではないドライブ上のワークツリーをロックして、プルーニングしてもワークツリーが残らないようにします。
  • 未レビューの作業を強制的に削除します。 git worktree remove は、--force を追加しない限り、変更のあるワークツリーを拒否するため、最初に差分を読んでください。 Claude Code の非インタラクティブな -p の実行では、後のセッションで解放されるまでワークツリーがロックされたままになります。自分で削除する前に、ロックを解除してください。
  • エージェントを実行するタブを閉じる。 GitTree では、組み込みターミナルはそのリポジトリ タブに属しており、タブを閉じると、そのターミナル セッション (実行中のエージェントを含む) が停止します。
  • レビューできる数を超えるエージェントを実行している。 レビューが本当のボトルネックです。 2 つまたは 3 つの並列タスクから始めて、それらをマージすることが日常的に感じられたらさらに追加します。

次のタスクでワークツリーを試してみる

開始するのに必要なのは Git のワークツリー コマンドだけであり、GUI を使用するといくつかのワークツリーを簡単に確認できます。 GitTree には、macOS、Windows、Linux の無料プランがあり、プライベート リポジトリを含むすべての Git 機能をカバーしており、AI アシスタントの Nour には GitTree Pro が付属しています。サインインすると、すべての Git 機能は無料プランで利用できるようになり、Git 2.39 以降が必要になります。 Ubuntu 22.04 では、まず Ubuntu で Git をアップグレード してください。 Linux インストール ガイド に従うか、GitTree ダウンロード ページ にアクセスしてください。

よくある質問

git worktree と git clone の違いは何ですか?

クローンはリポジトリ全体を独自のオブジェクト データベースを持つ新しいフォルダーにコピーするため、そのブランチとコミットはプッシュとフェッチを通じてのみ別のクローンに到達します。ワークツリーは同じリポジトリの追加フォルダーです。コミットとブランチは一度に共有されますが、各フォルダーは独自のファイル、ブランチ、ステージング領域を保持します。

2 つの git ワークツリーで同じブランチをチェックアウトできますか?

デフォルトではありません。 Git は、別のワークツリーですでにチェックアウトされているブランチのワークツリーの作成を拒否するため、これをオーバーライドする強制オプションはそのままにしておくのが最善です。同じ開始点が必要な場合は、すべてのワークツリー、つまりすべての AI エージェントに、同じコミットから作成された独自のブランチを与えます。

Claude Code は git worktree をサポートしていますか?

はい。 Claude Code のドキュメントには、新しいブランチの .claude/worktrees の下にワークツリーを作成し、その中でセッションを開始する --worktree フラグ (略して -w) について説明されています。 git worktree add でワークツリーを作成し、そのフォルダーに移動して、そこで Claude Code を開始することもできます。これは Codex の場合と同じように機能します。

git ワークツリーを安全に削除するにはどうすればよいですか?

フォルダー パスを指定して git worktree Remove を実行します。ワークツリーにコミットされていない変更または追跡されていないファイルがある場合、Git は拒否するため、最初にそれらを確認またはコミットし、確実な場合にのみ強制オプションを使用します。ブランチは保持されるので、マージしたら別途削除してください。フォルダーを手動で削除した場合、 git worktree prune は残ったレコードをクリアします。

git worktree は、node_modules、.env、またはビルド ファイルを共有しますか?

いいえ。新しいワークツリーには、Git が追跡するファイルのみが含まれます。インストールされた依存関係、環境ファイル、ビルド出力はそれらが作成されたフォルダーに残るため、各ワークツリーには独自のインストールとローカル構成の独自のコピーが必要です。クロード コードは、作成するワークツリーについて、選択した無視されたファイルを .worktreeinclude ファイルを通じてコピーできます。

GUI を備えた最高の Git ワークツリー マネージャーは何ですか?

すべてのワークツリーをリストし、それぞれのブランチと変更が保持されているかどうかを表示し、ターミナルを使用せずにワークツリーを追加、ロック、移動、削除、プルーニング、修復できるクライアントを探してください。 GitTree は、macOS、Windows、および Linux で利用可能で、これらすべてを実行し、コミット グラフのブランチ チップに兄弟ワークツリーをマークします。

GitTree はワークツリーで AI エージェントを起動しますか?

いいえ。GitTree はワークツリーを管理し、それぞれに独自のタブを与えます。そのワークツリーのフォルダーで起動する組み込みターミナルを使用して、Claude Code、Codex、または別のエージェントを自分で起動します。これとは別に、[生成] をクリックすると、GitTree は独自のクロード コード、コーデックス、または Antigravity CLI を介してコミット メッセージをドラフトし、リクエストの説明をプルできます。

情報源

他の製品に関する申し立ては、2026年10月22日 の公式ページと照合して確認されました。価格と機能は変更されます。ベンダーのページが真実の情報源です。