☰ もくじ 第12章 Worktreeで同時に複数の作業場所
CHAPTER 12 🌳

Worktreeで同時に複数の作業場所

1つのリポジトリで、2つの枝を同時に触りたい。
そんなときに使うのが「ワークツリー」です。

この章でわかること Worktreeがなぜ便利か/作る・一覧する・消す3つのコマンド/ VS CodeやAIエージェント(Claude Codeなど)との組み合わせ方
ここから少しだけ「コマンド」を使います WorktreeはGitHub Desktopがサポートしていない機能なので、 ここだけコマンドライン(黒い画面)を使います。むずかしくないので、構えなくて大丈夫。 画面の出し方は本章のうしろにまとめてあります。

1. 何が困るのか(Worktreeを使わない場合)

よくある場面 feature-A 枝で機能を開発中。仲間から「main の動作を見せて」と頼まれた。
main に切りかえる → ファイルの中身が main の状態にガラッと変わる → 確認 → feature-A にもどす… 毎回これをやるのが地味にしんどい

1つのフォルダで枝を切りかえる方式の弱点:

2. Worktreeの考えかた

.gitフォルダ 記録・履歴・枝の情報 (1つだけ) 📂 my-repo/ (main) 本家のフォルダ。ふだんの作業場 → ここがメインのworktree 📂 my-repo-featureA/ (feature-A) 同じリポジトリの「別の作業場」 → feature-A 枝が常に置かれる 📂 my-repo-hotfix/ (hotfix-bug) 緊急対応用にもう1つ → 必要になったら作って、終わったら消す
.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での開き方

GitHub Desktopとの関係 GitHub Desktopは worktreeをUIで作る機能はありません。 でも、コマンドで作ったworktreeフォルダを「File → Add local repository」で 1つずつ登録すれば、各worktreeをそれぞれ普通のリポジトリのように扱えます。 上部の「Current repository」プルダウンで切りかえ。

5. AIエージェント(Claude Codeなど)との組み合わせ

Claude Codeのようなエージェントは、worktreeを「他人を巻きこまずに作業させる仕切り」として使えます。

このように、Worktreeは「リポジトリの分身を一時的に立てる」道具として、AI連携でも力を発揮します。

6. 使うときの注意点

3つだけ覚える

7. コマンドラインの出しかた(はじめての方へ)

まとめ Worktree=「同じリポジトリの、別の作業場」。 枝の切りかえに疲れた・2つの枝を見くらべたい・AIエージェントと並走したい—— どれにも効きます。コマンドはadd / list / remove の3つだけ覚えればOK。
← まえへ第11章 みんなと使う
第12章 / Git・GitHubはじめてマニュアル