Chuyển đến nội dung chính
Quay lại danh sách bài viết

Git Worktree เปิดหลายสาขาในเครื่องเดียวโดยไม่สลับไฟล์

worktree เพิ่ม working directory อีกชุดที่ใช้ repository เดียวกัน อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

Git Worktree เปิดหลายสาขาในเครื่องเดียวโดยไม่สลับไฟล์

worktree เพิ่ม working directory อีกชุดที่ใช้ repository เดียวกัน เหมาะกับการแก้ hotfix ระหว่างทำฟีเจอร์ หรือเปิดหลายสาขาเพื่อเทียบผล บทความนี้สรุปแนวคิดจากเอกสารทางการของ Git และจุดที่ควรตรวจเมื่อนำไปใช้จริง

ภาพรวม

Git บันทึกประวัติเป็น commit และแยกงานด้วย reference เช่น branch คำสั่งต่าง ๆ อาจเปลี่ยนไฟล์ทำงาน index หรือประวัติ จึงควรตรวจผลก่อนใช้กับงานร่วมกัน

หัวข้อนี้ตอบโจทย์เฉพาะเรื่อง: worktree เพิ่ม working directory อีกชุดที่ใช้ repository เดียวกัน จึงควรเริ่มจากปัญหาที่ต้องแก้และผลลัพธ์ที่คาดหวัง ไม่ใช่เพียงเปิดฟีเจอร์เพราะมีอยู่ในเครื่องมือ

หลักการทำงาน

แต่ละ directory มี HEAD และไฟล์ทำงานของตน แต่แชร์ object store ของ repository

ให้ตรวจทั้งสถานะที่เครื่องมือรายงานและผลลัพธ์ปลายทางที่ผู้ใช้หรือระบบอื่นได้รับ หากสองส่วนไม่ตรงกัน ควรกลับไปตรวจค่าตั้งต้นและขอบเขตที่ฟีเจอร์นี้รับผิดชอบก่อนเปลี่ยนค่าเพิ่มเติม

เหมาะกับงานแบบไหน

เหมาะกับการแก้ hotfix ระหว่างทำฟีเจอร์ หรือเปิดหลายสาขาเพื่อเทียบผล

ก่อนทดลอง ให้ระบุสิ่งที่จะใช้วัดผล เช่น เวลาตอบสนอง ความพร้อมใช้งาน ความถูกต้องของข้อมูล หรือภาระการดูแล แล้วเทียบกับสภาพเดิม วิธีนี้ช่วยให้รู้ว่าฟีเจอร์แก้ปัญหาจริงหรือย้ายภาระไปอีกจุดหนึ่ง

ขั้นตอนนำไปใช้

  1. สร้าง branch หรือ worktree ทดสอบและบันทึก commit hash
  2. ดู git status และ git log ก่อนและหลังใช้คำสั่ง
  3. ตรวจ diff และรันทดสอบที่เกี่ยวข้องก่อนส่งงาน

เริ่มจากขอบเขตเล็กและเก็บผลทดสอบไว้กับการเปลี่ยนแปลง หากจะใช้ใน production ให้กำหนดผู้ติดตามผลและเงื่อนไขที่จะหยุดการขยายการใช้งาน

ข้อควรระวัง

สาขาเดียวกันมัก checkout ในหลาย worktree พร้อมกันไม่ได้ และควรลบ worktree ผ่านคำสั่ง Git

แปลงข้อควรระวังนี้เป็นรายการตรวจในการทบทวนงาน เพราะปัญหาจากค่าตั้งต้นอาจไม่แสดงทันทีในสภาพแวดล้อมทดสอบ

สรุป

worktree เพิ่ม working directory อีกชุดที่ใช้ repository เดียวกัน เหมาะกับการแก้ hotfix ระหว่างทำฟีเจอร์ หรือเปิดหลายสาขาเพื่อเทียบผล ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่

อ่านเพิ่มเติม: เอกสารทางการของ Git

Chia sẻ bài viết:
Xem thêm bài viết