Git Worktree:複数のブランチで同時に作業する
git worktreeを使用して、別々のディレクトリで複数のブランチを同時にチェックアウトする方法を学びます。ホットフィックス、コードレビュー、並列開発に最適。
Advanced
詳細な説明
Git Worktreeで複数ブランチを同時に作業
git worktreeは同じリポジトリの複数のブランチを別々のディレクトリで同時にチェックアウトできます。stash、ブランチ切り替え、クローンは不要です。
Worktreeの作成
# 既存のブランチ用にworktreeを作成
git worktree add ../hotfix hotfix/critical-fix
# 新しいブランチでworktreeを作成
git worktree add -b feature/new-feature ../new-feature
Worktree vs Stash vs Clone
| アプローチ | 速度 | ディスク容量 | .git共有 |
|---|---|---|---|
| Stash | 高速 | なし | はい |
| Worktree | 高速 | 少量 | はい |
| Clone | 低速 | 大量 | いいえ |
Worktreeは同じ.gitディレクトリを共有するため、追加のディスク容量は最小限で、すべての操作(fetch、gc)がすべてのworktreeに適用されます。
ユースケース
Git worktreeは複数のことを同時に作業する必要がある一般的な問題を解決します。stashしてブランチを切り替える代わりに(これはフローを中断します)、各ブランチに別々のディレクトリを持つことができます。現在のフィーチャーのコンテキストを失わずに緊急のホットフィックスを処理する、コーディング中にプルリクエストをレビューする、あるブランチで長いテストを実行しながら別のブランチで開発する場合に最適です。