ข้ามไปเนื้อหาหลัก

git worktree แก้ปัญหา context switching ได้ดีกว่า stash

worktree ให้มีหลาย branch active พร้อมกันโดยไม่ต้อง stash หรือ commit กลางคัน

ปัญหาที่เจอบ่อย: กำลังทำฟีเจอร์ A อยู่ครึ่งทาง มีคนรายงาน bug บน main ต้องแก้ด่วน → ต้อง git stash หรือ commit งานค้าง → checkout main → แก้ bug → กลับมา branch เดิม → pop stash

git worktree แก้ได้โดยไม่ต้อง switch branch เลย:

# สร้าง worktree ใหม่สำหรับ hotfix
git worktree add ../project-hotfix main

# แก้ bug ใน worktree แยก
cd ../project-hotfix
# ... แก้ไฟล์, commit, push

# กลับมา worktree หลัก — งานเดิมยังอยู่ครบ
cd ../project
git worktree remove ../project-hotfix

แต่ละ worktree มี working directory แยกกัน แต่ share git history เดียวกัน เหมือนเปิด repo เดียวกันในสอง folder พร้อมกัน

เหมาะมากกับงานที่มี hotfix บ่อย หรือต้องรัน dev server หลาย branch พร้อมกัน