Branch & Merge Branch

#HelloGameDev #HelloErmine #HelloWorld2021

Branch

ก่อนที่เราจะไป merge branch เรามาดูส่วนนี้กันก่อนดีกว่า

เวลาที่เรา commit เรื่อย ๆ จนกลายเป็น History มันก็จะมีหน้าตาแบบนี้

แต่ละ Commit จะเรียงต่อกันเป็น Node จนกลายเป็นเส้นยาว ๆ

การเรียงต่อกันเป็น node ของ commit จนเป็นเส้นยาว ๆ แบบนี้จะเรียกว่า branch และในการใช้งาน Git จริง ๆ จะไม่ได้มีแค่ branch เดียวเท่านั้น

ลองยกตัวอย่าง เช่น ถ้านาย A และนาย B ทำโปรเจคเดียวกันแต่ว่าทำคนละ Feature จะเกิดอะไรขึ้น ?

ถ้าเป็นการทำงานแบบที่มีแค่ branch เดียว เราก็จะพบว่านาย A กับนาย B ต้องเสียเวลา pull ข้อมูลของกันและกันบ่อยมาก ทั้ง ๆ ที่โค้ดของทั้งสองไม่ได้เกี่ยวข้องกัน

โค้ดไม่ได้เกี่ยวข้องกัน แต่ต้องมาอยู่บน Branch เดียวกัน

ซึ่งส่วนนี้ Git ออกแบบให้สามารถสร้าง branch แยกออกมาหลายเส้นได้ ดังนั้น ในกรณีดังกล่าวเราควรแยก branch หนึ่งออกมาสำหรับนาย A และอีก branch หนึ่งสำหรับนาย B นั่นเอง

แยก Branch เสร็จแล้ว ก็ตัวใครตัวมันละ
ตัวอย่าง Branch บน GitHub Desktop

Merge branch

จากตัวอย่างที่ผ่านมา เมื่อนาย A และนาย B เขียนโค้ดของตัวเองเสร็จแล้วก็ถึงเวลาของ merge branch

หรือก็คือ เมื่อใดก็ตามที่ภายในโปรเจคต้องการจับ branch คู่ใดมา merge รวมกันนั่นเอง

เมื่อรวมโค้ดของทั้งสองเข้าด้วยกัน ความมันก็เกิดขึ้น (bug กระจุย!)

แต่ในระหว่าง merge branch ก็อาจจะมี conflict เกิดขึ้น แต่เนื่องจากการแยก branch มักจะใช้สำหรับกรณีที่เขียนโค้ดคนละส่วนกันอยู่แล้ว ดังนั้น ตำแหน่งของโค้ดที่เกิด conflict ก็จะมีเพียงบางจุดเท่านั้น และเมื่อแก้ไข conflict เสร็จและ merge branch ทั้งสองเข้าด้วยกันได้แล้ว ก็จะได้ออกมาเป็น merge commit นั่นเอง

เราสามารถ merge branch ได้โดย...

  1. เลือก branch ที่จะถูก merge ลง

  2. กด 'Choose a branch to merge' เพื่อเลือก branch

  3. เลือก branch ที่เราเพิ่งทำเสร็จ เเล้วต้องการจะ merge ลงไปใน branch ข้อที่ 1

  4. จากนั้นกด Create a merge

Last updated

Was this helpful?