1. Git Worktree とは?
1つのリポジトリ(.git)を共有しながら、複数の異なるブランチを別々のディレクトリに同時にチェックアウトして作業できる機能です。
メリット
- ブランチ切り替え(checkout)が不要:作業途中の状態(stash)を気にせず、別ブランチの修正やレビューに即座に入れる。
-
ディスク容量の節約:
.gitフォルダを複製(clone)しないため、容量を消費しない。
2. 基本コマンド一覧
📌 作成・追加
新しい作業スペースを作成し、自動的にブランチを作成・切り替えます。
# 基本形(指定したパスに、既存または新規のブランチを展開)
git worktree add <ディレクトリ名> <ブランチ名>
# 【よく使う】新規ブランチを同時に作成して worktree を追加
git worktree add -b <新ブランチ名> <作成先パス> origin/main
📌 一覧表示
現在作成されている worktree の一覧と、それぞれのパス・コミット・ブランチを確認します。
git worktree list
📌 削除・クリーンアップ
不要になった worktree を安全に削除します。
Git 2.17 以降(推奨)
git worktree remove <作成したパス>
Git 2.17 未満(古いGit環境)
# 1. 物理ディレクトリを手動削除
rm -rf <作成したパス>
# 2. Git側の管理情報をクリア
git worktree prune
※ 注意: worktree を削除しても、作成された「ローカルブランチ」は残るため、不要なら別途 git branch -d <ブランチ名> で削除してください。
3. 注意点・制約
- 同じブランチを複数にチェックアウトはできない:メインのリポジトリや他の worktree で既に開いているブランチは、同時に別の worktree で開けません。
- 親ディレクトリの移動に注意:メインリポジトリの場所を移動すると、各 worktree とのリンクが切れる場合があります。