0Pricing
DevOps Bootcamp · บทเรียน

การแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง

เรียนรู้การระบุและแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง ซึ่งเกิดขึ้นเมื่อผสานสาขาที่มีความแตกต่างกัน

การแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

ทำความเข้าใจข้อขัดแย้งในการผสาน

ยินดีต้อนรับสู่โลกของข้อขัดแย้งในการผสานครับ ไม่ต้องกังวล เพราะข้อขัดแย้งเหล่านี้เป็นเรื่องปกติของการทำงานร่วมกันด้วย Git ข้อขัดแย้งในการผสานเกิดขึ้นเมื่อ Git ไม่สามารถหาวิธีรวมการเปลี่ยนแปลงจากสองสาขาโดยอัตโนมัติได้

โดยทั่วไปจะเกิดขึ้นเมื่อสองสาขาแก้ไขบรรทัดเดียวกันในไฟล์เดียวกันด้วยวิธีที่แตกต่างกัน หรือเมื่อสาขาหนึ่งลบไฟล์ที่อีกสาขาแก้ไขไว้

สาเหตุของข้อขัดแย้ง

Git ฉลาดมากในการผสานการเปลี่ยนแปลงส่วนใหญ่โดยอัตโนมัติ อย่างไรก็ตาม เมื่อต้องเผชิญกับความกำกวม ก็ยังต้องอาศัยความช่วยเหลือจากผู้ใช้ ตัวอย่างสถานการณ์ที่พบบ่อยมีดังนี้

  • บรรทัดเดียวกัน การเปลี่ยนแปลงต่างกัน: คนสองคนแก้ไขบรรทัดโค้ดเดียวกันในรูปแบบที่แตกต่างกัน
  • คนหนึ่งลบ อีกคนแก้ไข: สาขาหนึ่งลบไฟล์ ขณะที่อีกสาขาแก้ไขไฟล์นั้น
  • เปลี่ยนชื่อเทียบกับแก้ไข: ไฟล์ถูกเปลี่ยนชื่อในสาขาหนึ่งและถูกแก้ไขในอีกสาขาหนึ่ง

การตรวจหาข้อขัดแย้งด้วย Git

เมื่อเกิดข้อขัดแย้งในการผสาน Git จะไม่ดำเนินการผสานให้เสร็จโดยอัตโนมัติ แต่จะหยุดกระบวนการไว้และแจ้งให้คุณทราบว่าไฟล์ใดมีข้อขัดแย้ง คุณจะเห็นข้อความลักษณะนี้

Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

ใช้ `git status` เพื่อตรวจสอบข้อขัดแย้ง

หลังจากการผสานอัตโนมัติล้มเหลว คลังของคุณจะอยู่ในสถานะ 'กำลังผสาน' คุณสามารถใช้ git status เพื่อดูว่าไฟล์ใดมีข้อขัดแย้ง ไฟล์เหล่านี้จะแสดงอยู่ในรายการ 'เส้นทางที่ยังผสานไม่เสร็จ'

git status

ทำความเข้าใจเครื่องหมายข้อขัดแย้ง

Git จะแทรกเครื่องหมายพิเศษลงในไฟล์ที่มีข้อขัดแย้งโดยตรง เพื่อแสดงให้เห็นว่าปัญหาอยู่ที่ใด เครื่องหมายเหล่านี้ช่วยให้คุณระบุโค้ดแต่ละเวอร์ชันได้

  • <<<<<<< HEAD: ระบุจุดเริ่มต้นของการเปลี่ยนแปลงจากสาขาปัจจุบันของคุณ
  • =======: คั่นการเปลี่ยนแปลงจากสองสาขา
  • >>>>>>> branch-name: ระบุจุดสิ้นสุดของการเปลี่ยนแปลงจากสาขาที่เข้ามา

ภายในไฟล์ที่มีข้อขัดแย้ง

มาดูตัวอย่างกันครับ สมมติว่าคุณมีไฟล์ hello.txt สาขา main ของคุณแก้ไขไฟล์นี้เป็น 'Hello from main' และสาขา feature แก้ไขบรรทัดเดียวกันเป็น 'Greetings from feature' เมื่อผสาน feature เข้าไปใน main ไฟล์จะมีลักษณะดังนี้

<<<<<<< HEAD
Hello from main
=======
Greetings from feature
>>>>>>> feature

การแก้ไขข้อขัดแย้งด้วยตนเอง

หน้าที่ของคุณคือเปิดไฟล์ที่มีข้อขัดแย้ง (เช่น hello.txt) ในเครื่องมือแก้ไขข้อความ จากนั้นแก้ไขไฟล์ด้วยตนเองเพื่อลบเครื่องหมายข้อขัดแย้งและเลือกเนื้อหาที่ต้องการ คุณสามารถรวมบางส่วน เลือกเวอร์ชันใดเวอร์ชันหนึ่ง หรือเขียนเนื้อหาใหม่ทั้งหมดได้

สำหรับตัวอย่าง hello.txt หากเราต้องการเก็บทั้งสองข้อความ เราอาจแก้ไขเป็นดังนี้

Hello from main and Greetings from feature!

การเตรียมการเปลี่ยนแปลงที่แก้ไขแล้ว

เมื่อคุณแก้ไขไฟล์ด้วยตนเองและลบเครื่องหมายข้อขัดแย้งทั้งหมดแล้ว คุณต้องแจ้งให้ Git ทราบว่าคุณแก้ไขข้อขัดแย้งเสร็จแล้ว โดยเตรียมไฟล์เข้าสู่พื้นที่เตรียมการด้วย git add

ทำซ้ำขั้นตอนนี้กับทุกไฟล์ที่แสดงอยู่ในรายการ 'เส้นทางที่ยังผสานไม่เสร็จ' โดย git status

git add hello.txt

การสร้างคอมมิตการผสานให้เสร็จสมบูรณ์

หลังจากเตรียมไฟล์ที่มีข้อขัดแย้งทั้งหมดแล้ว การผสานก็พร้อมสำหรับการบันทึกเป็นคอมมิต โดยทั่วไป Git จะมีข้อความคอมมิตการผสานเริ่มต้นให้ ซึ่งคุณสามารถยอมรับหรือแก้ไขได้ คอมมิตสุดท้ายนี้จะทำให้กระบวนการผสานเสร็จสมบูรณ์

git commit -m "Merged feature branch, resolved conflict in hello.txt"

ตรวจสอบการแก้ไขข้อขัดแย้ง

คุณแก้ไขข้อขัดแย้งในการผสานได้สำเร็จแล้วครับ ตอนนี้มาทดสอบความเข้าใจของคุณเกี่ยวกับขั้นตอนสำคัญถัดไปหลังจากแก้ไขไฟล์ที่มีข้อขัดแย้งด้วยตนเองกัน

ทบทวน: การแก้ไขข้อขัดแย้งด้วยตนเอง

คุณได้เรียนรู้วิธีแก้ไขข้อขัดแย้งในการผสานด้วยตนเองแล้ว! นี่เป็นทักษะพื้นฐานที่นักพัฒนาทุกคนควรมี

  • ข้อขัดแย้งเกิดขึ้นเมื่อ Git ไม่สามารถผสานการเปลี่ยนแปลงโดยอัตโนมัติได้
  • git status จะแสดงไฟล์ที่ยังผสานไม่เสร็จ
  • เครื่องหมายข้อขัดแย้ง (<<<<<<<, =======, >>>>>>>) จะแสดงโค้ดที่แตกต่างกัน
  • แก้ไขไฟล์ด้วยตนเอง ลบเครื่องหมายออก แล้วเลือกเนื้อหาสุดท้าย
  • จัดเตรียมไฟล์ที่แก้ไขข้อขัดแย้งแล้วด้วย git add
  • ดำเนินการผสานให้เสร็จสิ้นด้วย git commit

การฝึกฝนจะทำให้เชี่ยวชาญ! ในตอนแรกข้อขัดแย้งอาจดูน่ากังวล แต่เมื่อทำตามขั้นตอนเหล่านี้ คุณจะสามารถจัดการได้อย่างคล่องแคล่ว

คำถามที่พบบ่อย

บทเรียน “การแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง”

เรียนรู้การระบุและแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง ซึ่งเกิดขึ้นเมื่อผสานสาขาที่มีความแตกต่างกัน คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง
  2. การรีเบสแบบโต้ตอบเพื่อจัดการประวัติ
  3. การเลือกคอมมิตด้วย Cherry-pick
  4. การใช้ Git Rerere เพื่อนำการแก้ข้อขัดแย้งกลับมาใช้ใหม่
← กลับไปที่ DevOps Bootcamp