DEV Community

Cover image for วิธีแก้ git conflict เบื้องต้นใน Virtual Studio Code
Pattanapong Cherthong
Pattanapong Cherthong

Posted on

วิธีแก้ git conflict เบื้องต้นใน Virtual Studio Code

เหตุการณ์สมมุติคือ ใน git repo เดียวกัน มี Dev 2 คน กำลังแก้ไฟล์เดียวกัน Dev คนแรกแก้ไข commit และ push ขึ้น git repo เรียบร้อย แต่มี Dev คนที่ 2 คือคุณเอง มาแก้ไข code บรรทัดเดียวกันกับคนแรกที่เพิ่งแก้ไป

1.หลังจากนั้นคุณก็มีการแก้ไขไฟล์ ทำการ Add และ Commit เสร็จ ใน Source Control ถ้า git repo มีอัพเดทใหม่ จะขึ้นปุ่ม Sync Change ให้เรากด
แต่พอกด Sync Change พบว่าเจอ Popup แบบนี้
Git popup

2.ให้กดปุ่ม Show Command Output เพื่อดูว่าเกิดอะไรขึ้น ปรากฏว่ามี git error แบบนี้
Git error
ลองสั่ง git pull ใน Terminal ก็ขึ้นมาเหมือนกัน
Git hint

3.ในข้อความ hint อยากให้คุณตัดสินใจว่าจะ merge หรือ rebase
เพื่อที่จะ merge conflict คุณจะต้องตั้งค่าเพื่อไม่ให้ rebase ด้วยคำสั่งนี้ใน Terminal
(ขั้นตอนนี้เราจะทำครั้งแรกครั้งเดียวเท่านั้น ของแต่ละ repo ในเครื่อง)

git config pull.rebase false
Enter fullscreen mode Exit fullscreen mode

4.หลังจากนั้นกดปุ่ม Sync Change ใน Source Control อีกครั้ง หรือ สั่ง git pull ก็ใน Terminal อีกครั้งจะบบว่าไฟล์ที่เราเพิ่งแก้ไป จะมี highlight ขึ้นในบรรทัดที่ชนกัน
ให้เราตัดสินใจว่าจะเลือกฝั่งไหนหรือเอาทั้งคู่
(ถ้าสั่ง git pull ใน Terminal จะมีบอกเราด้วยว่าไฟล์ไหนมี Conflict กันบ้าง)
Fix conflict

5.พอเราแก้ conflict เสร็จแล้ว ก็ Add (หรือเรียก Stage แล้วแต่ถนัด) และ Commit ตามปกติ จะมี popup มาถามว่าจะ merge conflicts ใช่ไหม ก็ตอบ Yes ได้เลย
Git commit
Git merge popup

6.ตอนนี้เราก็สามารถ commit และ กด Sync Change ได้ตามปกติ (หรือสั่ง git pull และ git push ใน Terminal ก็ได้)

Top comments (0)