用語集
Gitワークツリーとは?
TL;DR
Gitワークツリーは、リポジトリの2つ目の作業コピーです。専用のブランチと専用のフォルダを持ち、同じ履歴を共有します。stashやブランチの切り替えなしで、2つのブランチを同時に扱えます。AIエージェントにとっては、複数を並列で安全に動かすための仕組みです。各エージェントが自分のファイルだけを編集するからです。Paneはpaneごとにワークツリーを作り、.envと設定を入れ、paneをアーカイブするとワークツリーを削除します。
Gitワークツリーは、リポジトリの2つ目の作業コピーです。専用のフォルダと専用のブランチを持ちます。メインのチェックアウトと同じGit履歴を共有するので、すぐに作れて、追加のディスク容量もほとんど使いません。同時にいくつでも開けます。
ワークツリーが解決する問題
1つのフォルダでチェックアウトできるブランチは1つだけです。ワークツリーは、別のブランチを持つフォルダを追加します。
通常、リポジトリは1つのフォルダで、チェックアウトできるブランチも1つです。2つの作業を同時に進めるには、変更をstashし、ブランチを切り替え、別の作業をして、元に戻り、stashを戻します。できなくはありませんが、遅くて間違えやすい方法です。
ワークツリーなら、最初から別のブランチになっている2つ目のフォルダが手に入ります。機能Aは片方のフォルダ、機能Bはもう片方のフォルダで進められます。両方を同時に開けて、stashも切り替えも要りません。
AIエージェントに重要な理由
1つのリポジトリで複数のエージェントを安全に動かせるのは、ワークツリーのおかげです。
同じフォルダで2つのAIエージェントを動かすと、互いの変更を上書きします。エージェントAがauth.tsを編集し、1分後にエージェントBがauth.tsを編集すると、最後に保存した方が勝ちます。もう一方のエージェントの作業は消え、どちらもそれに気づきません。
エージェントごとにワークツリーを用意すれば、それぞれが専用のフォルダ、ブランチ、ファイルを持ちます。両方が同時にauth.tsを編集しても、互いのコピーには触れません。終わったら、各ブランチを個別にレビューしてマージします。
ディスク上ではこう見える
履歴は同じで、ファイルは別々です。フォルダの置き場所は、あなたかツールが決めます。
my-project/ ← your main checkout (main)
my-project/worktrees/
├─ add-auth/ ← worktree, branch add-auth
└─ fix-nav/ ← worktree, branch fix-navすべてのワークツリーは同じGit履歴を共有するので、1つでcommitすればほかのワークツリーからも見えます。commit前の編集は、それぞれのフォルダにとどまります。Git自体はワークツリーの置き場所を気にしません。リポジトリの隣でも、別のフォルダでも、Paneのようにリポジトリの中でも構いません。
Paneによる自動化
Paneはpaneごとにワークツリーを作り、中身を用意し、後片付けまでします。コマンドを打つ必要はありません。
Gitコマンドを打つ必要はありません。paneを作ると、Paneは次のことをします。
- そのプロジェクトとブランチ用に事前に準備しておいたワークツリーを使います。そのためpaneはほぼ一瞬で開きます。そこに新しいブランチを割り当てます。
- .envファイル、.claudeや.codexなどのエージェント設定、node_modulesをコピーします。エージェントはすぐに作業を始められます。コピー対象は設定で変更できます。
- paneをアーカイブすると、commitしていない作業、追跡されていないファイル、pushしていない作業がないか確認してから、ワークツリーを削除します。アーカイブしたpaneは後で復元できます。
手動で行う方法
作成して始めるのにコマンドが3つ、片付けに2つです。
ツールを使わない場合、同じことにいくつかのGitコマンドが必要です。
echo "worktrees/" >> .git/info/exclude # once: keep them out of git status
git worktree add worktrees/add-auth -b add-auth
cd worktrees/add-auth
claude # start your agent here
# once the branch is merged:
git worktree remove worktrees/add-auth
git branch -d add-authマージが済んだら、ワークツリーの削除とブランチの削除を忘れないでください。ほとんどの人が忘れます。だからツールが自動化しているのです。
関連ドキュメント
- → Paneとワークツリー:Paneがワークツリーを管理する仕組み
- → エージェントを並列実行する:並列作業の全手順
- → モノレポ:モノレポでのワークツリー運用
- → AIエージェント向けGitワークツリー:概要ページ
出典
- 訂正
- 間違っている点や古くなっている点があれば、教えてください。修正して、ページ上部の日付を更新します。 GitHubでissueを作成
- 出典
よくある質問
著者 Parsa Khazaeepoul、Paneの共同創業者。 .