ใช้ Interactive Rebase จัดประวัติ Commit ก่อนส่งงาน
interactive rebase ช่วยเรียง รวม แก้ข้อความ หรือแยก commit ในสาขาของตน อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ
interactive rebase ช่วยเรียง รวม แก้ข้อความ หรือแยก commit ในสาขาของตน เหมาะกับการทำให้ชุดการเปลี่ยนแปลงอ่านง่ายก่อนเปิด pull request บทความนี้สรุปแนวคิดจากเอกสารทางการของ Git และจุดที่ควรตรวจเมื่อนำไปใช้จริง
ภาพรวม
Git บันทึกประวัติเป็น commit และแยกงานด้วย reference เช่น branch คำสั่งต่าง ๆ อาจเปลี่ยนไฟล์ทำงาน index หรือประวัติ จึงควรตรวจผลก่อนใช้กับงานร่วมกัน
หัวข้อนี้ตอบโจทย์เฉพาะเรื่อง: interactive rebase ช่วยเรียง รวม แก้ข้อความ หรือแยก commit ในสาขาของตน จึงควรเริ่มจากปัญหาที่ต้องแก้และผลลัพธ์ที่คาดหวัง ไม่ใช่เพียงเปิดฟีเจอร์เพราะมีอยู่ในเครื่องมือ
หลักการทำงาน
Git เขียนประวัติ commit ชุดใหม่จากฐานที่เลือกตามรายการคำสั่งที่ผู้ใช้ปรับ
ให้ตรวจทั้งสถานะที่เครื่องมือรายงานและผลลัพธ์ปลายทางที่ผู้ใช้หรือระบบอื่นได้รับ หากสองส่วนไม่ตรงกัน ควรกลับไปตรวจค่าตั้งต้นและขอบเขตที่ฟีเจอร์นี้รับผิดชอบก่อนเปลี่ยนค่าเพิ่มเติม
เหมาะกับงานแบบไหน
เหมาะกับการทำให้ชุดการเปลี่ยนแปลงอ่านง่ายก่อนเปิด pull request
ก่อนทดลอง ให้ระบุสิ่งที่จะใช้วัดผล เช่น เวลาตอบสนอง ความพร้อมใช้งาน ความถูกต้องของข้อมูล หรือภาระการดูแล แล้วเทียบกับสภาพเดิม วิธีนี้ช่วยให้รู้ว่าฟีเจอร์แก้ปัญหาจริงหรือย้ายภาระไปอีกจุดหนึ่ง
ขั้นตอนนำไปใช้
- สร้าง branch หรือ worktree ทดสอบและบันทึก commit hash
- ดู git status และ git log ก่อนและหลังใช้คำสั่ง
- ตรวจ diff และรันทดสอบที่เกี่ยวข้องก่อนส่งงาน
เริ่มจากขอบเขตเล็กและเก็บผลทดสอบไว้กับการเปลี่ยนแปลง หากจะใช้ใน production ให้กำหนดผู้ติดตามผลและเงื่อนไขที่จะหยุดการขยายการใช้งาน
ข้อควรระวัง
หลีกเลี่ยงการ rebase สาขาที่คนอื่นใช้งานร่วมกัน เพราะ commit hash จะเปลี่ยน
แปลงข้อควรระวังนี้เป็นรายการตรวจในการทบทวนงาน เพราะปัญหาจากค่าตั้งต้นอาจไม่แสดงทันทีในสภาพแวดล้อมทดสอบ
สรุป
interactive rebase ช่วยเรียง รวม แก้ข้อความ หรือแยก commit ในสาขาของตน เหมาะกับการทำให้ชุดการเปลี่ยนแปลงอ่านง่ายก่อนเปิด pull request ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่
อ่านเพิ่มเติม: เอกสารทางการของ Git