🐕
AIに同じリポジトリで並行作業させるなら git worktree が一番ラクだった
AIエージェントに「同じリポジトリで並行作業」させたいとき、雑にブランチを切り替えていくとだいたい破綻します。
- 自分の作業ツリーが汚れる
- AIが勝手に
git checkoutして状態が変わる - 「今どのブランチ見てたっけ?」が発生する
- そしてコンテキストが長くなるほどAIが頭悪くなる(体感)
そこで git worktree です。
正直、自分が手作業のときはあまり使ってこなかったんですが、AI並行作業だと便利さが跳ね上がります。
前提
- エディタ: VS Code
- AIエージェント: VS Code のターミナルで
claude code - ディレクトリ構成:
{プロジェクト用ディレクトリ}/{repo}
例:~/work/letsgo/letsgo-core
何が嬉しいか(結論)
同一リポジトリの別ブランチを、別フォルダで同時に開ける。
- 自分: メインの作業ディレクトリ(普段のやつ)
- AI: worktree に切り出した別ディレクトリ
- お互いの作業ツリーが干渉しない
- VS Code も「別ウィンドウ」で分離できる
自分の運用ルール(ここがポイント)
1) デフォルトのworktreeは触らない
「今まで通りのリポジトリの場所」を 自分の作業場として固定 します。
worktree は AI専用の作業場。
2) worktreeは repo の外にまとめる
例だと ../worktrees/ に寄せています。
- どこにworktreeを生やしてるかが明確
- あとで掃除しやすい
実際の流れ(いつものやつ)
0) メインの作業ディレクトリは main にしておく
cd ~/work/letsgo/letsgo-core
git ch main
(※ git ch はエイリアス想定。普通は git checkout main / git switch main でOK)
1) AI用worktreeを作る
git worktree add ../worktrees/fix/auth-callback fix/auth-callback
2) worktree 側で VS Code を起動して、AIはそこだけ触らせる
code ../worktrees/fix/auth-callback
そして、そのVS Code のターミナルで claude code を立ち上げる。
重要:
AIには「このディレクトリしか触るな」を最初に言っておくのが効きます。
3) 自分はメイン側で別作業を続ける
- 自分: メインディレクトリ
- AI: worktreeディレクトリ
VS Code を完全に分離できるのがポイントです。
4) 動作確認は “メイン側” でやる
AIのworktreeは「作業用」。
- ワーキングツリーがクリーンに保てる
- AIが実行したコマンドの影響を切り分けやすい
5) 終わったらworktreeを消す
git worktree remove ../worktrees/fix/auth-callback
つまづきポイント(経験談)
- 未コミットがあると
removeできない - worktreeの存在を忘れる
git worktree list
- AIがメイン側に移動して作業し始める
→ 最初の指示が9割
動作確認時の指示プロンプト(コピペ用)
あなたはこのリポジトリで作業中のAIエージェントです。
【重要】
- 作業ディレクトリは「WORKTREE側」だけを使用してください。
- メインの作業ディレクトリには移動・変更しないでください。
- git checkout / git switch は勝手に実行しないでください。
- テストを通すためにテストコードの期待値を書き換えるのは禁止です。
【目的】
- 変更内容: (ここに今回の目的を書く)
- 完了条件:
1) ローカルテストが通る
2) lint / format が通る
【動作確認】
- 動作確認はメインディレクトリ側で実施します。
- 実行コマンド一覧と期待結果を提示してください。
まとめ
AIに並行作業させるときの git worktree は、個人的には 事故防止装置 でした。
- 作業場所が分離できる
- VS Code も分離できる
- AIの暴走が被害限定になる
- 後片付けが簡単
AIと同じリポジトリを触るのが怖い人ほど、試す価値があります。
Discussion