การแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง
เรียนรู้การระบุและแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง ซึ่งเกิดขึ้นเมื่อผสานสาขาที่มีความแตกต่างกัน
การแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การแก้ไขข้อขัดแย้งจากการผสานด้วยตนเอง
- การรีเบสแบบโต้ตอบเพื่อจัดการประวัติ
- การเลือกคอมมิตด้วย Cherry-pick
- การใช้ Git Rerere เพื่อนำการแก้ข้อขัดแย้งกลับมาใช้ใหม่