用語集

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は次のことをします。

  1. そのプロジェクトとブランチ用に事前に準備しておいたワークツリーを使います。そのためpaneはほぼ一瞬で開きます。そこに新しいブランチを割り当てます。
  2. .envファイル、.claudeや.codexなどのエージェント設定、node_modulesをコピーします。エージェントはすぐに作業を始められます。コピー対象は設定で変更できます。
  3. 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

マージが済んだら、ワークツリーの削除とブランチの削除を忘れないでください。ほとんどの人が忘れます。だからツールが自動化しているのです。

出典

訂正
間違っている点や古くなっている点があれば、教えてください。修正して、ページ上部の日付を更新します。 GitHubでissueを作成
出典

よくある質問

または
ダウンロード*
Windows SmartScreen の警告Pane は未署名のため、直接ダウンロードすると SmartScreen の警告が出ることがあります。 Pane は完全にオープンソースです。コードを確認したり、自分でビルドしたりできます。1. 「詳細情報」をクリック2. 「実行」をクリック3. インストールを続けるPowerShell からなら公式リリースを直接ダウンロードできます。ブラウザ経由で起きやすい問題もほぼ避けられます。npm グローバルインストール
PowerShell に貼り付けてください。Linux

著者 Parsa Khazaeepoul、Paneの共同創業者。 .