git worktree cho phép checkout nhiều branches vào các thư mục riêng biệt, cùng chia sẻ 1 git object store — không cần clone lần 2.
Khi stash không đủ:
- Đang code feature phức tạp → urgent hotfix cần làm ngay → stash feature, switch, code hotfix, unstash → context switching overhead cao.
- Clone lần 2: tốn disk, download lại tất cả objects.
Worktree solution:
bash
# Thêm worktree cho hotfix trong thư mục riêng:
git worktree add ../my-repo-hotfix hotfix/critical-bug
# hoặc tạo branch mới:
git worktree add -b hotfix/urgent ../my-repo-hotfix main
# Làm việc trong thư mục hotfix:
cd ../my-repo-hotfix
# Code, test, commit — hoàn toàn độc lập
# Xóa worktree sau khi xong:
git worktree remove ../my-repo-hotfixƯu điểm:
- Chia sẻ git objects → không tốn disk thêm
- Không phải stash/unstash
- Build artifacts của mỗi worktree độc lập (2 terminal chạy npm run dev đồng thời)
Hạn chế: 1 branch chỉ có thể được checkout trong 1 worktree tại 1 thời điểm.
Ideal use case: monorepo, cần chạy 2 versions đồng thời để compare behavior.