この章でわかること
Worktreeがなぜ便利か/作る・一覧する・消す3つのコマンド/
VS CodeやAIエージェント(Claude Codeなど)との組み合わせ方。
ここから少しだけ「コマンド」を使います
WorktreeはGitHub Desktopがサポートしていない機能なので、
ここだけコマンドライン(黒い画面)を使います。むずかしくないので、構えなくて大丈夫。
画面の出し方は本章のうしろにまとめてあります。
1. 何が困るのか(Worktreeを使わない場合)
よくある場面
feature-A 枝で機能を開発中。仲間から「main の動作を見せて」と頼まれた。
main に切りかえる → ファイルの中身が main の状態にガラッと変わる → 確認 → feature-A にもどす…
毎回これをやるのが地味にしんどい。
1つのフォルダで枝を切りかえる方式の弱点:
- 切りかえのたびファイルが全部書きかわる(重いとビルドのキャッシュも飛ぶ)
- 未コミットの変更があると切りかえに気を使う(第9章)
- 2つの枝を見くらべたいとき、エディタを行き来できない
- AIエージェントに「片方の枝で作業させたまま、自分は別の枝で動きたい」が無理
2. Worktreeの考えかた
.gitは1つ・作業フォルダ(worktree)は複数。それぞれ違う枝を同時にチェックアウトできる。
worktree(ワークツリー)
リポジトリにもう1つ別の作業フォルダをぶら下げる仕組み。
.git(履歴の本体)は1つだけど、作業場所=チェックアウトされた枝の見え方を複数持てる。
3. 基本の3コマンド
① 追加する
main のとなり(兄弟フォルダ)に、feature-A 枝の作業場を作る例:
# まず main のリポジトリフォルダに入る
$ cd my-repo
# 既存の枝 feature-A を、新しいフォルダで開く
$ git worktree add ../my-repo-featureA feature-A
これで、../my-repo-featureA フォルダが作られ、feature-A 枝の状態でファイルがそろう。
新しい枝も同時に作って開きたいなら -b:
$ git worktree add -b feature-B ../my-repo-featureB
feature-B 枝が新しく作られて、../my-repo-featureB がその作業場になる。
② 一覧を見る
$ git worktree list
# 出力例:
C:/main/my-repo abc1234 [main]
C:/main/my-repo-featureA def5678 [feature-A]
C:/main/my-repo-featureB ghi9012 [feature-B]
どこに・どの枝の作業場があるか、ひと目でわかる。
③ 用ずみのものを消す
$ git worktree remove ../my-repo-featureA
フォルダごと消えて、Gitの管理からも外れる。中で未コミットの変更があると拒否される(安全)。
強制的に消したい・フォルダを手で消してしまった後の片付けは:
$ git worktree prune
4. VS Codeでの開き方
- VS Codeを起動し、各worktreeのフォルダを別々のウィンドウで開く(File → New Window → Open Folder)
- 「マルチルートワークスペース」機能で、複数のworktreeを1つのウィンドウに並べることもできる(File → Add Folder to Workspace…)
- 左下に枝名が表示されるので、どのworktreeを触っているか迷わない
GitHub Desktopとの関係
GitHub Desktopは worktreeをUIで作る機能はありません。
でも、コマンドで作ったworktreeフォルダを「File → Add local repository」で
1つずつ登録すれば、各worktreeをそれぞれ普通のリポジトリのように扱えます。
上部の「Current repository」プルダウンで切りかえ。
5. AIエージェント(Claude Codeなど)との組み合わせ
Claude Codeのようなエージェントは、worktreeを「他人を巻きこまずに作業させる仕切り」として使えます。
- 並行で動かせる:自分はmain、AIはfeature-A枝のworktreeで作業 → 互いの邪魔をしない
- 失敗しても本体に影響なし:実験中のworktreeは、ダメならフォルダごと削除すればきれいになくなる
- 複数のAIを同時に走らせやすい:worktreeごとに別のタスク・別のブランチ
このように、Worktreeは「リポジトリの分身を一時的に立てる」道具として、AI連携でも力を発揮します。
6. 使うときの注意点
3つだけ覚える
- 同じ枝を2つのworktreeに同時にチェックアウトできない(Gitが拒否する。安全装置)
- worktreeの中で別の枝に切りかえると、その枝がそのworktreeに「固定」される(他のworktreeでは使えなくなる)
- 用ずみのworktreeはこまめに削除(散らかったままだと、Gitの動作が少しずつ遅くなる)
7. コマンドラインの出しかた(はじめての方へ)
-
VS Codeを起動
リポジトリのフォルダを開きます(第3章で入れたVS Code)。
-
ターミナルを開く
上のメニュー「Terminal」 →「New Terminal」、
または Ctrl+`(バッククォート)。
-
いまの場所を確認
pwd と打って Enter。リポジトリのフォルダにいればOK。
-
上の3コマンドを打ってみる
git worktree list なら、何も追加していなければ
mainのフォルダ1つだけが表示されます。これでもう動いている。
まとめ
Worktree=「同じリポジトリの、別の作業場」。
枝の切りかえに疲れた・2つの枝を見くらべたい・AIエージェントと並走したい——
どれにも効きます。コマンドはadd / list / remove の3つだけ覚えればOK。