Git Worktrees

Git ขั้นสูง

Amanda Crawford-Adamo

Software and Data Engineer

Git Worktree คืออะไร?

คำสั่ง Git Worktree

git worktree
  • สามารถ "checkout" หลายบรานช์ในพื้นที่ทำงานได้พร้อมกัน
  • คล้ายกับการ checkout repo แต่มีประสิทธิภาพกว่า
  • ไม่ต้อง stash การเปลี่ยนแปลง
  • ไม่ต้องสลับบรานช์ระหว่างการพัฒนา

ภาพต้นไม้จำลองที่ประกอบด้วยวงกลมและเส้น

Git ขั้นสูง

Git Worktree เทียบกับ Git Switch

ตารางนี้เปรียบเทียบการใช้ git worktree กับ git switch ใน workflow การพัฒนา $$

Git Worktree Git Switch
ใช้งานหลายบรานช์พร้อมกัน ใช้งานได้ครั้งละหนึ่งบรานช์
แยกไดเรกทอรี ไดเรกทอรีทำงานเดียว
ไม่ต้อง stash การเปลี่ยนแปลง อาจต้องทำการ stash
Git ขั้นสูง

การสร้าง Git Worktree

สร้าง worktree ใหม่จาก <branch> ไปยังไดเรกทอรี <path>

git worktree add <path> <branch>

ตัวอย่าง

สร้าง worktree ใหม่จากบรานช์ bugfix/data-validation ไปยังไดเรกทอรี ../etl-bugfix

git worktree add ../etl-bugfix bugfix/data-validation
Git ขั้นสูง

การแสดงรายการและลบ Worktree

  • แสดงรายการ worktree ที่ใช้งานอยู่ทั้งหมด: git worktree list

ตัวอย่างผลลัพธ์

$ git worktree list
flight-pipeline            a1b2c3d [main]
flight-pipeline-feature    e4f5g6h [feature]
flight-pipeline-hotfix     i7j8k9l [hotfix]
  • ลบ worktree ออกจาก <path>: git worktree remove <path>

ตัวอย่างผลลัพธ์

$ git worktree remove flight-pipeline-hotfix
flight-pipeline-hotfix: deleted
Git ขั้นสูง

ควรใช้ Git Worktrees เมื่อใด

ควรใช้เมื่อ:

  • ทำงานหลาย feature พร้อมกัน
  • แก้ไข bug เร่งด่วนโดยไม่กระทบงานที่กำลังทำ
  • รันเทสต์บนหลายบรานช์แบบขนาน
  • รีวิวโค้ดระหว่างที่ยังพัฒนาต่อเนื่อง

ควรพิจารณาใหม่เมื่อ:

  • พื้นที่ดิสก์มีจำกัด
  • โปรเจกต์มีการอัปเดตบ่อยและ merge ซับซ้อน
Git ขั้นสูง

แนวทางปฏิบัติที่ดีสำหรับ Git Worktrees

เคล็ดลับการใช้ Git worktrees:

  1. ตั้งชื่อไดเรกทอรี worktree ให้ชัดเจนและสื่อความหมาย
  2. ลบ worktree ที่ไม่ใช้งานเป็นประจำเพื่อความเป็นระเบียบ
  3. ระวังการใช้พื้นที่ดิสก์ โดยเฉพาะกับโปรเจกต์ขนาดใหญ่
  4. ใช้ worktree สำหรับงานขนานระยะสั้นเพื่อป้องกันความสับสน
Git ขั้นสูง

มาฝึกกันเถอะ!

Git ขั้นสูง

Preparing Video For Download...