Git Worktree

適用(てきよう) シナリオ:hotfix を処理(しょり) する必要(ひつよう) があるが、現在(げんざい)作業(さぎょう) を stash したくない場合(ばあい)

現在の位置を確認

git branch
# feature/l-001

main から hotfix worktree を作成

git worktree add -b hotfix-123 .worktrees/hotfix-123 main

または:

git worktree add .worktrees/hotfix-123 main
git worktree list
/workspace/git-playground                        0e439b8 [feature/l-001]
/workspace/git-playground/.worktrees/hotfix-123  0e439b8 [main]

hotfix ディレクトリに切り替え

cd .worktrees/hotfix-123

2番目(ばんめ)方法(ほうほう)使用(しよう) した場合(ばあい)追加(ついか) で checkout が必要(ひつよう)

git checkout -b hotfix-123

hotfix ブランチで問題を修正

# ファイルを修正
git add .
git commit -m "fix: issue description"

hotfix をプッシュしてマージ

git push origin hotfix-123
# リモートで PR & Merge を完了

プロジェクトルートに戻る

cd ../..

hotfix worktree をクリーンアップ

git worktree remove .worktrees/hotfix-123
git fetch
git pull origin main

元の feature ブランチの開発作業を継続

Demo

git worktree add ../worktree/feature/ABC-12345 prod.1.112.4 -b feature/ABC-12345