การรวม Commits Github

การรวม Commits Github

การเก็บ source code ในปัจจุบัน ส่วนใหญ่จะเก็บไว้ที่ cloud service ซึ่งก็มีผู้ให้บริการที่หลากหลาย อย่างเช่น git ซึ่งในการพัฒนา code จะต้องมีการส่ง source code ขึ้นไปและระบบจะเก็บ history ไว้ ฟังแล้วก็ดูดี แต่ถ้าหาก source code ชุดนั้นมีการพัฒนามาหลายปีแล้ว แน่นอนว่า history ของ source code นั้นก็จะยาวมาก และคนที่อยากดู history ของ source code ชุดนี้ก็คงจะปวดหัวไม่น้อย หรือเราอาจจะมีการส่ง source code ไปแล้ว แต่พึ่งเจอว่าเป็นบัค ก็จะต้องแก้ไขแล้วส่งเพิ่มไปอีก หากยังเจออีกก็ต้องแก้แล้วส่งไปอีก ซึ่งการพัฒนา code ควรจะส่งเป็นหัวข้อ หัวข้อละ 1 commit เพื่อให้ง่ายในการหาและทำความเข้าใจ

Credit : https://medium.com/corrado-cavalli/squash-commits-in-visual-studio-b469ef021436

จากรูปคือบทสรุปของเนื้อหาบทนี้

  • จุดสีขาว คือ Master
  • จุดสีฟ้า คือ การแก้ไข code แล้วมีการ commit ขึ้นไปยัง Master ซึ่งในตัวอย่างคือมีการ commit 3 ครั้ง แต่ใน 3 ครั้งนี้อาจจะเป็นเรื่องเดียวกันแต่แก้ไขของ commit ก่อนหน้านี้จนมี 3 commit ก่อนที่จะ merge code ในส่วนของชุดนี้ก็ควรจะทำการรวม commit ทั้ง 3 commits เข้าด้วยกันเป็นเรื่องเดียว
วิธีการรวม commits ให้เหลือ commit เดียว โดยใช้คำสั่งใน terminal (Ubuntu)
# git rebase -i <REPO : ORIGIN>/<BRANCH : MASTER>

จะเห็น commit ที่ผ่านมาของ source code นั้น

หากต้องการที่จะรวม 2 commits ล่างสุดให้เหลือ commit เดียว ให้เปลี่ยนจากคำว่า pick เป็น s หรือ squash เพื่อทำการ commit รวมกับ commit ก่อนหน้า

จากนั้นกดออก (ctrl + x) ระบบจะทำการรวม commit ที่ใส่ข้อความ s กับ commit ก่อนหน้าให้ โดยจะขึ้นให้เลือกว่าต้องการที่จะใช้ชื่อ commit ไหน

จากนั้นให้กดออกและ save อีกทีหนึ่ง ระบบจะทำการวม commit ให้
ตรวจสอบดูอีกครั้ง จะพบว่า commit !fixup ได้ถูกรวมกับ commit ก่อนหน้าเรียบร้อยแล้ว

เพียงเท่านี้ commit ที่เราแก้ไขหลาย commit ก็จะถูกรวมเหลือเพียง 1 commit เท่านั้น

About the Author

Leave a Reply