Git Merge with Conflict
จงกลับไป ณ iss53
สมมติว่าแก้ไขไฟล์ index.html อีก
คราวนี้มาถึงของดี เพราะว่า iss53 นั้นท่ายากกว่า hotfix ที่ผ่านมาครับ สมมติว่าเราพอใจจะ merge มันกับ master เช่นเดียวกับชะตากรรมของ hotfix
git checkout master
git merge iss53
มันพยายามรวมกัน แต่มันรวมกันไม่ได้ เพราะว่าเกิดความไม่เข้ากันของ content ขึ้นมาเสียก่อน เรียกว่าเกิด conflict
ซึ่งเราเองต้องไปตัดสินใจแก้ไขความสับสนนี้ก่อน แล้วจึงจะสั่ง commit ได้
ให้เปิดไฟล์ index.html ดูครับ git จะทำเครื่องหมายเอาไว้ โดยแบ่งโค้ดที่มันขัดแย้งกันออกเป็นสองส่วน (บน กับ ล่าง) โดยคั้นแต่ล่ะส่วนด้วยเครื่องหมาย
=======
จาก source ส่วนบนเกิดจาก master branch ที่ header pointer ขี้อยู่ และส่วนล่างเกิดจาก iss53 branch ที่ iss53 pointer ขี้อยู่
โดยผมตัดสินใจแก้ไขให้เป็นแบบนี้ (พิจารณาแล้วลบพวกสัญลักษณ์ที่ git สร้างไว้ออกด้วยนะครับ)
แก้ไขแล้วก็ต้องสร้าง snapshot ใหม่ พิมพ์
git add index.html
จากนั้นสั่ง
git commit
อันนี้เป็นโปรแกรม vm ซึ่งคิดว่าชาว linux คงคุ้นเคยกันดี สำหรับในกรณีนี้ผมไม่ขอกล่าวถึง เราจะออกจาก vm ได้โดยการพิมพ์
:wq
เป็นอันว่าเรียบร้อย merge สำเร็จ
***หมายเหตุ
ในรูป c6 ก็คือ commit object กับ snapshot ตัวใหม่ที่เราสั่ง git add นั่นเองครับ
สุดท้ายลบ iss53 ทิ้งไป
จบแล้วสำหรับการ merge ที่เจ๊อะ conflict สวัสดีจ้า
ไม่มีความคิดเห็น:
แสดงความคิดเห็น