git worktreeの使い方
Git Worktree を活用した効率的な開発ワークフロー
Git Worktree は、一つの Git リポジトリに対して複数のワーキングツリーを同時に持つことができる強力な機能です。これにより、既存の作業を中断することなく、異なるブランチでの作業や検証を並行して行うことが可能になります。
ここでは、Git Worktree の基本的な使い方から、開発ワークフローにおける具体的な活用方法までを説明します。
既存のブランチについて Worktree を作成
すでに存在するブランチのワーキングツリーを作成するには、git worktree add コマンドを使用します。これにより、現在のリポジトリとは別のディレクトリで、指定したブランチでの作業が可能になります。
コマンド:
code:bash
git worktree add .worktree/{branch_name} {branch_name}
例:
main ブランチの Worktree を .worktree/main ディレクトリに作成する場合:
code:bash
git worktree add .worktree/main main
新規のブランチについて Worktree を作成
新しいブランチを作成し、同時にそのブランチのワーキングツリーを作成することも可能です。これは、新しい機能開発や実験的な変更を行う際に便利です。
コマンド:
code:bash
git worktree add -b {new_branch_name} .worktree/{new_branch_name} {base_branch_name}
例:
feature/new-feature という新しいブランチを main ブランチから分岐させ、その Worktree を .worktree/feature-new-feature ディレクトリに作成する場合:
code:bash
git worktree add -b feature/new-feature .worktree/feature-new-feature main
もし git worktree add .worktree/{new_branch_name} {new_branch_name} のように、存在しないブランチ名を指定した場合でも、そのブランチは自動的に作成されます。
Worktree 上でコミット・プッシュ
Worktree 上で作成されたディレクトリは、通常の Git リポジトリと同様に機能します。そのため、ファイルの変更、コミット、プッシュといった一連の操作は、普段行っている Git コマンドと全く同じように実行できます。
1. Worktree が作成されたディレクトリに移動します。
code:bash
cd .worktree/{branch_name}
2. 通常通りコードを修正し、ステージング、コミット、プッシュを行います。
code:bash
git add .
git commit -m "{commit_message}"
git push origin {branch_name}
Worktree で行ったコミットは、メインの Git リポジトリにも反映されます。
Worktree の削除
不要になった Worktree は、簡単に削除することができます。Worktree を削除すると、対応するディレクトリと Git の管理ファイルがクリーンアップされます。
コマンド:
code:bash
git worktree remove .worktree/{branch_name}
例:
.worktree/feature-new-feature の Worktree を削除する場合:
code:bash
git worktree remove .worktree/feature-new-feature
Worktree を削除した後に、関連する管理ファイルが残っている場合があります。これらのファイルをクリーンアップするには、git worktree prune コマンドを使用します。
code:bash
git worktree prune
参考情報