Site icon บริษัท โค๊ดบี จำกัด

วิธีแก้ Merge Conflict ใน Git

วิธีแก้-Merge-Conflict-ใน Git

วิธีแก้-Merge-Conflict-ใน Git

&NewLine;<figure class&equals;"wp-block-video"><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">ในขั้นตอนของการพัฒนา โปรแกรมเมอร์แต่ละคนอาจจะแยก Branch ออกไปพัฒนาแต่ละฟีเจอร์ของโปรเจค แต่อาจจะมีบ้างที่มีการแก้ไขในส่วนของไฟล์ที่ใช้ร่วมกัน เช่น library หลัก&comma; ส่วนการตั้งค่าระบบ Config หรืออาจจะเป็นการแก้ไขใน Modules เดียวกัน แต่เป็นคนละฟีเจอร์ของระบบ <&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">เมื่อมีการแก้ไขในไฟล์เดียวกัน จุดเดียวกัน และเมื่อมีการ Merge การแก้ไขของ Branch นั้น ๆ เข้ามาที่ Master Branch ก็อาจจะทำให้เกิดกรณี Merge Conflict ขึ้นได้<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<div style&equals;"height&colon;100px" aria-hidden&equals;"true" class&equals;"wp-block-spacer"><&sol;div>&NewLine;&NewLine;&NewLine;&NewLine;<h4 class&equals;"wp-block-heading"><strong>วิธีแก้ Merge Conflict <&sol;strong><&sol;h4>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">จากรูปตัวอย่างด้านล่าง โปรเจคนี้ได้มี main branch และ dev-master branch และได้มีการแก้ไขไฟล์ index&period;html ในส่วนของ title และ body ในตำแหน่งเดียวกัน<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;วิธีแก้-Merge-Conflict-0-5-940x247&period;jpg" alt&equals;"" class&equals;"wp-image-5665" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;วิธีแก้-Merge-Conflict-0-5&period;jpg" data-full-size&equals;"1459x384" &sol;><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<div style&equals;"height&colon;20px" aria-hidden&equals;"true" class&equals;"wp-block-spacer"><&sol;div>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">และเมื่อเราต้องการจะรวม merge dev-master branch เข้ามาที่ main branch ก็จะทำให้เกิดกรณี merge conflict ตัวอย่างตามรูปด้านล่าง<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;วิธีแก้-Merge-Conflict-2-940x507&period;png" alt&equals;"" class&equals;"wp-image-5666" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;วิธีแก้-Merge-Conflict-2&period;png" data-full-size&equals;"976x526" &sol;><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<div style&equals;"height&colon;20px" aria-hidden&equals;"true" class&equals;"wp-block-spacer"><&sol;div>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">เมื่อเกิด conflict เราจะไม่สามารถ commit merge ได้ จำเป็นจะต้องแก้ไข conflict ก่อน วิธีการคือ ให้เปิดไฟล์ที่เกิด conflict ขึ้นมา หรือกดปุ่ม Open in Visual Studio Code &lpar; สำหรับ Editor ขึ้นอยู่กับว่าเราลง Editor และตั้งค่าการใช้งานตัวไหนไว้ในเครื่อง &rpar; เมื่อเราเปิดไฟล์ที่มีปัญหาขึ้นมา ระบบ Git จะแสดงจุดที่เกิดปัญหา หรือ Conflict ตัวอย่างตามรูปด้านล่าง<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;วิธีแก้-Merge-Conflict-1-940x434&period;png" alt&equals;"" class&equals;"wp-image-5667" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;วิธีแก้-Merge-Conflict-1&period;png" data-full-size&equals;"1152x532" &sol;><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">ตัวอย่าง Conflict ด้านบน อธิบายให้เข้าใจได้ง่าย ๆ ดังนี้ครับ<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<ul class&equals;"wp-block-list"><li><strong>Current<&sol;strong> คือ branch ที่เราเปิดอยู่ตอนนี้นั่นคือ main branch<&sol;li><li><strong>Incoming<&sol;strong> คือ branch ที่เรากำลังจะนำเข้ามารวมกับ Current นั่นคือ dev-master branch<&sol;li><li><strong>Accept Current Change<&sol;strong> คือ เราเลือกที่จะใช้การแก้ไขของ main branch <&sol;li><li><strong>Accept Incoming Change<&sol;strong> คือ เราเลือกที่จะใช้การแก้ไขของ dev-master branch<&sol;li><li><strong>Accept Both Changes<&sol;strong> คือ ให้ merge โดยการเก็บการแก้ไขของทั้ง 2 branch เอาไว้<&sol;li><li><strong>Compare Changes<&sol;strong> คือ เปิดไฟล์ใหม่ เพื่อเปรียบเทียบการแก้ไขระหว่าง 2 branch เพื่อใช้ในการตัดสินใจว่าจะใช้ของ branch ไหน<&sol;li><&sol;ul>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">ตอนนี้เรามีตัวเลือกให้เลือกอยู่ 3 ทางคือ current&comma; incoming&comma; both และเมื่อเราเลือกเสร็จ ตรวจสอบการแก้ไขเรียบร้อยแล้ว กดบันทึก เปิดโปรแกรม Github Desktop ขึ้นมาก็จะเห็นว่า Conflict ได้ถูกแก้ไขไปเรียบร้อยแล้ว สามารถกดปุ่ม Commit merge ได้แล้ว<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;วิธีแก้-Merge-Conflict-4-940x503&period;png" alt&equals;"" class&equals;"wp-image-5668" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;วิธีแก้-Merge-Conflict-4&period;png" data-full-size&equals;"980x524" &sol;><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<div style&equals;"height&colon;100px" aria-hidden&equals;"true" class&equals;"wp-block-spacer"><&sol;div>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">สำหรับบทความอื่น ๆ เกี่ยวกับการใช้งาน git สามารถอ่านเพิ่มเติมได้ที่<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<ul class&equals;"wp-block-list"><li><a href&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;git-&percnt;e0&percnt;b8&percnt;84&percnt;e0&percnt;b8&percnt;b7&percnt;e0&percnt;b8&percnt;ad&percnt;e0&percnt;b8&percnt;ad&percnt;e0&percnt;b8&percnt;b0&percnt;e0&percnt;b9&percnt;84&percnt;e0&percnt;b8&percnt;a3-&percnt;e0&percnt;b8&percnt;81&percnt;e0&percnt;b8&percnt;b2&percnt;e0&percnt;b8&percnt;a3&percnt;e0&percnt;b9&percnt;83&percnt;e0&percnt;b8&percnt;8a&percnt;e0&percnt;b9&percnt;89&percnt;e0&percnt;b8&percnt;87&percnt;e0&percnt;b8&percnt;b2&percnt;e0&percnt;b8&percnt;99-git&sol;">Git คืออะไร การใช้งาน Git ฉบับผู้เริ่มต้น<&sol;a><&sol;li><li><a href&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;&percnt;e0&percnt;b8&percnt;a7&percnt;e0&percnt;b8&percnt;b4&percnt;e0&percnt;b8&percnt;98&percnt;e0&percnt;b8&percnt;b5&percnt;e0&percnt;b9&percnt;83&percnt;e0&percnt;b8&percnt;8a&percnt;e0&percnt;b9&percnt;89&percnt;e0&percnt;b8&percnt;87&percnt;e0&percnt;b8&percnt;b2&percnt;e0&percnt;b8&percnt;99-github-desktop-&percnt;e0&percnt;b8&percnt;a3&percnt;e0&percnt;b9&percnt;88&percnt;e0&percnt;b8&percnt;a7&percnt;e0&percnt;b8&percnt;a1&percnt;e0&percnt;b8&percnt;81&percnt;e0&percnt;b8&percnt;b1&percnt;e0&percnt;b8&percnt;9a-gitlab-reposity&sol;">วิธีใช้งาน Github Desktop ร่วมกับ Gitlab Reposity<&sol;a><&sol;li><&sol;ul>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph"><&sol;p>&NewLine;

Exit mobile version