通常の Git では、1つのブランチしかチェックアウトできないため、他のブランチで作業したい場合はブランチを切り替える必要があります。
git worktree を使うことで:
git worktree add <ディレクトリ> <ブランチ>
なんなら、main や master といったメインのブランチも worktree に出しておくことをおすすめします
git worktree list
git worktree remove <ディレクトリ>
項目 | git worktree | git clone + checkout -b |
---|---|---|
.git ディレクトリ | 1つだけ(共有) | 各クローンに .git があり、独立 |
ディスク使用量 | 少ない(オブジェクトを共有) | 多い(すべて複製される) |
管理のしやすさ | git worktree list で一元管理 | 各 clone は独立なので把握しにくい |
履歴やブランチの共有 | 完全に共有 | 独立している(fetch/pushが必要) |
使えるブランチ | 同じブランチを同時に複数チェックアウト不可 | 可(完全に別リポジトリだから) |
目的 | 同一リポジトリ内の並列作業 | 完全に独立した作業や分離環境の構築 |
git worktree remove <作業ディレクトリ>
⚠️ ディレクトリ自体は削除されないことが多いです(Git が自動で削除できない場合があるため)。
ディレクトリを手動で削除する
rm -rf <作業ディレクトリ>