Nâng CaoGit iconGit

`git worktree` là gì? Khi nào nó tốt hơn stash hoặc tạo clone thứ 2?

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.

Xem toàn bộ Git cùng filter theo level & chủ đề con.

Mở danh sách Git