Git Worktree

Git nâng cao

Amanda Crawford-Adamo

Software and Data Engineer

Git Worktree là gì?

Lệnh Git Worktree

git worktree
  • Có thể "checkout" nhiều nhánh trong workspace.
  • Tương tự checkout repo, nhưng hiệu quả hơn
  • Không cần stash thay đổi
  • Không cần chuyển nhánh khi phát triển

Một cái cây giả tạo bởi các vòng tròn và đường thẳng

Git nâng cao

Git Worktree so với Git Switch

Bảng này so sánh git worktree và git switch trong quy trình phát triển. $$

Git Worktree Git Switch
Nhiều nhánh hoạt động cùng lúc Một nhánh hoạt động tại một thời điểm
Thư mục riêng biệt Một thư mục làm việc
Không cần stash thay đổi Có thể cần stash
Git nâng cao

Tạo Git Worktree

Tạo worktree mới từ <branch> vào thư mục <path>

git worktree add <path> <branch>

Ví dụ

Tạo worktree mới từ nhánh bugfix/data-validation vào thư mục ../etl-bugfix

git worktree add ../etl-bugfix bugfix/data-validation
Git nâng cao

Liệt kê và xóa Worktree

  • Liệt kê tất cả worktree đang hoạt động: git worktree list

Ví dụ đầu ra

$ git worktree list
flight-pipeline            a1b2c3d [main]
flight-pipeline-feature    e4f5g6h [feature]
flight-pipeline-hotfix     i7j8k9l [hotfix]
  • Xóa một worktree theo <path>: git worktree remove <path>

Ví dụ đầu ra

$ git worktree remove flight-pipeline-hotfix
flight-pipeline-hotfix: deleted
Git nâng cao

Khi nào dùng Git Worktree

Khi nên dùng:

  • Làm nhiều tính năng song song
  • Sửa lỗi khẩn cấp mà không gián đoạn công việc đang làm
  • Chạy kiểm thử trên các nhánh khác nhau song song
  • Review code trong khi vẫn phát triển

Cân nhắc lại khi:

  • Hạn chế dung lượng đĩa
  • Dự án cập nhật thường xuyên, merge phức tạp
Git nâng cao

Thực hành tốt với Git Worktree

Khi dùng Git worktree, lưu ý:

  1. Đặt tên thư mục worktree rõ ràng
  2. Thường xuyên prune worktree không dùng để giữ không gian gọn gàng
  3. Lưu ý dung lượng đĩa, nhất là với dự án lớn
  4. Dùng cho công việc song song ngắn hạn để tránh rối
Git nâng cao

Ayo berlatih!

Git nâng cao

Preparing Video For Download...