Merge commit
#HelloGameDev #HelloErmine #HelloWorld2021
Last updated
Was this helpful?
#HelloGameDev #HelloErmine #HelloWorld2021
Last updated
Was this helpful?
ในส่วนของ merge commit นั้นจะเป็นยกตัวอย่างกรณีจริงที่มักเกิดขึ้นเมื่อมีคนกลุ่มหนึ่งลงมือทำโค้ดร่วมกัน
โดยสมมติว่านาย A กับนาย B เขียนโค้ดด้วยกันอยู่ และทั้งคู่ก็เขียนโค้ดที่อยู่ในไฟล์เดียวกัน ดังรูปตัวอย่าง
นาย B เขียนโค้ดเสร็จแล้ว ก็เลย commit ไฟล์ที่ตัวเองเขียนเสร็จแล้ว push ขึ้น Remote repository
ส่วนนาย A ที่เขียนโค้ดเสร็จทีหลังและเตรียมจะ push ขึ้น Remote repository กลับพบว่านาย B ได้ push ขึ้นไปก่อนหน้านั้นแล้ว ทำให้เขา push ตามขึ้นไปในทันทีไม่ได้
ดังนั้น สิ่งที่นาย A ต้องทำก่อนที่จะ push ของตัวเองขึ้นไปได้ ก็คือจะต้อง pull จาก Remote repository ลงมาใหม่ก่อนเพื่ออัปเดต commit ที่นาย B ได้ push ขึ้นไป ซึ่งเราเรียกขั้นตอนนี้ว่า merge commit นั่นเอง
จากตัวอย่าง จะเห็นว่าโค้ดของนาย A และ B แก้ที่บรรทัดเดียวกัน แต่โค้ดออกมาไม่เหมือนกัน ในจุดนี้ก็จะเป็นผลต่อเนื่องไปสู่อีกหนึ่งปัญหาพื้นฐานที่ Developer ควรรู้นั่นเอง (ซึ่งส่วนนี้จะมีการอธิบายในหัวข้อ conflict ต่อไป)
นอกจากนี้ยังพบในกรณีที่โค้ดสามารถ merge ได้ปกติ เช่น
เมื่อ merge เข้าด้วยกัน จะได้ผลลัพธ์ออกมาเป็นแบบนี้
ซึ่งถือเป็นหนึ่งในกรณีที่โค้ดสามารถ merge รวมกันได้โดยไม่มีปัญหาอะไร และเมื่อ merge เสร็จแล้วก็จะกลายเป็น commit ตัวหนึ่งที่ให้เราเก็บไว้และ push ขึ้น Remote repository