Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

แก้ไขข้อขัดแย้ง Git Merge: คู่มือขั้นตอนแก้ Error 'Index Needs Resolution'

มีแนวคิดเกี่ยวกับ branches (สาขา) เกี่ยวข้องกับฟังก์ชันการทำงานของ Git มี master branch ตามด้วยหลายสาขาที่แยกออกจากมัน หากคุณสลับจากสาขาหนึ่งไปอีกสาขาหนึ่ง หรือมีความขัดแย้งเกี่ยวกับไฟล์สาขา คุณจะเจอข้อความข้อผิดพลาด Git error: you need to resolve your current index first เว้นแต่ข้อผิดพลาดจะได้รับการแก้ไข มิฉะนั้นคุณจะไม่สามารถสลับสาขาภายใน Git ได้ ไม่ต้องตกใจ เราจะแก้ Git Merge Error วันนี้

วิธีแก้ Git Merge Error: You need to resolve your current index first

Git Current Index error ห้ามไม่ให้คุณย้ายไปสาขาอื่นเนื่องจาก merge conflicts บางครั้งความขัดแย้งภายในไฟล์บางไฟล์อาจก่อให้เกิดข้อผิดพลาดนี้ แต่มักเกิดขึ้นเมื่อมี ความล้มเหลวในการ merge อาจเกิดขึ้นเมื่อคุณใช้คำสั่ง pull หรือ checkout ด้วย

มีสองสาเหตุหลักของ Git Current Index Error:

  • Merge Failure – ก่อให้เกิด merge conflict ที่ต้องแก้ไขเพื่อการเปลี่ยนสาขาที่ราบรื่น
  • Conflict in Files – เมื่อมีไฟล์ที่ขัดแย้งกันบนสาขาที่คุณใช้อยู่ จะห้ามไม่ให้คุณ checkout หรือ push code ได้

ประเภทของ Git Merge Conflicts

คุณอาจเจอ Git Merge Error ในสถานการณ์ต่อไปนี้:

  • เริ่มต้นกระบวนการ Merge: กระบวนการ merge จะไม่เริ่มต้นเมื่อมี การเปลี่ยนแปลงในพื้นที่สเตจ (stage area) ของ working directory สำหรับโปรเจกต์ปัจจุบัน คุณต้องทำให้เสถียรและเสร็จสิ้นการดำเนินการที่ค้างอยู่ก่อน
  • ระหว่างกระบวนการ Merge: เมื่อมี ปัญหาระหว่างสาขาที่กำลัง merge และสาขาปัจจุบันหรือสาขาท้องถิ่น (local branch) กระบวนการ merge จะไม่เสร็จสิ้น ในกรณีนี้ Git จะพยายามแก้ไขข้อผิดพลาดด้วยตัวเอง แต่ในบางกรณี คุณอาจต้องแก้ไขด้วยตนเอง

ขั้นตอนเตรียมการ:

1. ก่อนรันคำสั่งเพื่อแก้ Git merge error คุณต้องแน่ใจว่า ไม่มีผู้ใช้คนอื่นของไฟล์ merge เข้าถึงหรือทำการเปลี่ยนแปลงใดๆ

2. แนะนำให้ บันทึกการเปลี่ยนแปลงทั้งหมด โดยใช้คำสั่ง commit ก่อน checkout ออกจากสาขานั้น หรือก่อน merge สาขาปัจจุบันกับ head branch ใช้คำสั่งต่อไปนี้เพื่อ commit:

$ git add
$ git commit -m

หมายเหตุ: เราแนะนำให้อ่าน Glossary of Common Git Terms & Commands ที่ท้ายบทความ

ตอนนี้ เริ่มต้นแก้ไข Git Current Index Error หรือ Git Merge Error กัน

วิธีที่ 1: Reset Git Merge

การย้อนกลับ merge จะช่วยให้คุณกลับสู่ตำแหน่งเริ่มต้นเมื่อยังไม่มีการ merge ใดๆ ดำเนินการ ดังนั้น ให้รันคำสั่งต่อไปนี้ใน code editor:

1. พิมพ์ $ git reset –merge และกด Enter

2. หากไม่ได้ผล ให้ใช้คำสั่ง $ git reset –hard HEAD และกด Enter

นี่ควรจะทำให้ Git reset merge สำเร็จ และแก้ Git merge error ได้

วิธีที่ 2: Merge สาขาปัจจุบัน (Current Branch) กับ Head Branch

รันคำสั่งต่อไปนี้ใน note editor เพื่อสลับไปสาขาปัจจุบันและแก้ Git Merge Error:

1. พิมพ์ git checkout <> แล้วกด Enter

2. พิมพ์ git merge -s ours master เพื่อทำ merge commit

หมายเหตุ: โค้ดต่อไปนี้จะปฏิเสธทุกอย่างจาก head/master branch และเก็บข้อมูลจากสาขาปัจจุบันของคุณเท่านั้น

3. รัน git checkout master เพื่อกลับไปสู่ head branch

4. สุดท้าย ใช้ git merge <> เพื่อ merge ทั้งสองบัญชี

การทำตามขั้นตอนวิธีนี้จะ merge ทั้งสองสาขา และ Git current index error จะได้รับการแก้ไข หากไม่ได้ ลองวิธีถัดไป

วิธีที่ 3: แก้ไข Merge Conflict

หาไฟล์ที่มีความขัดแย้งและแก้ไขปัญหาทั้งหมด การแก้ไข merge conflict เป็นส่วนสำคัญของการกำจัด Git current index error

1. ก่อนอื่น ระบุไฟล์ที่ ก่อให้เกิดปัญหา ดังนี้:

  • พิมพ์คำสั่งต่อไปนี้ใน code editor: $ vim /path/to/file_with_conflict
  • กด Enter เพื่อรัน

2. ตอนนี้ commit ไฟล์ดังนี้:

  • พิมพ์ $ git commit -a -m 'commit message'
  • กด Enter

หลังจากทำตามขั้นตอนข้างต้นเสร็จ ลอง check out ออกจากสาขาและดูว่าทำงานได้หรือไม่

วิธีที่ 4: ลบสาขาที่ก่อให้เกิดความขัดแย้ง

ลบสาขาที่มีความขัดแย้งมาก และเริ่มใหม่ เมื่อไม่มีวิธีไหนได้ผล การลบไฟล์ที่ขัดแย้งกันเป็นแนวทางที่ดีเสมอเพื่อแก้ Git Merge Error ดังนี้:

1. พิมพ์ git checkout -f <> ใน code editor

2. กด Enter

Glossary: คำสั่ง Git พื้นฐาน

รายการคำสั่ง Git ต่อไปนี้จะให้คุณความเข้าใจสรุปเกี่ยวกับบทบาทของมันในการแก้ Git Merge error: you need to resolve your current index first

1. git log –merge: คำสั่งนี้จะให้รายการคำสั่งทั้งหมดที่อยู่เบื้องหลัง Merge conflict ในระบบของคุณ

2. git diff: คุณสามารถระบุความแตกต่างระหว่างสถานะ repositories หรือไฟล์ได้โดยใช้คำสั่ง git diff

3. git checkout: สามารถยกเลิกการเปลี่ยนแปลงที่ทำไว้ในไฟล์ และยังสามารถเปลี่ยนสาขาได้โดยใช้คำสั่ง git checkout

4. git reset –mixed: สามารถยกเลิกการเปลี่ยนแปลงใน working directory และการเปลี่ยนแปลงใน staging area ได้

5. git merge –abort: หากต้องการกลับไปยังขั้นตอนก่อน merge สามารถใช้คำสั่ง git merge –abort นี่ยังช่วยให้คุณออกจากกระบวนการ merge ได้

6. git reset: หากต้องการรีเซ็ตไฟล์ที่ขัดแย้งกลับสู่สถานะเดิม สามารถใช้คำสั่ง git reset คำสั่งนี้มักใช้ตอน merge conflict

Glossary: คำศัพท์ Git พื้นฐาน

อ่านคำศัพท์เหล่านี้เพื่อคุ้นเคยก่อนแก้ Git Merge Error

1. Checkout- คำสั่งหรือคำศัพท์นี้ช่วยให้ผู้ใช้สลับสาขาได้ แต่ต้องระวังความขัดแย้งของไฟล์ขณะทำ

2. Fetch– คุณสามารถดาวน์โหลดและโอนไฟล์จากสาขาเฉพาะไปยังเวิร์กสเตชันของคุณเมื่อทำ Git fetch

3. Index- เรียกว่า Working หรือ staging section ของ Git ไฟล์ที่แก้ไข เพิ่ม และลบ จะถูกเก็บใน index จนกว่าคุณจะพร้อม commit ไฟล์

4. Merge– การย้ายการแก้ไขจากสาขาหนึ่งและนำไปรวมเข้ากับอีกสาขาหนึ่ง (โดยปกติคือ master branch)

5. HEAD – เป็น head ที่สำรองไว้ (named reference) ใช้ตอน commit

บทความแนะนำ:

  • วิธีแก้ Hulu Token Error 3
  • วิธีเพิ่มหน้าใน Google Docs
  • วิธีเพิ่ม Table of Contents ใน Google Docs
  • แก้ Error TVAPP-00100 บน Xfinity Stream

หวังว่าคู่มือของเราจะช่วยและคุณสามารถแก้ไข Git Merge error: you need to resolve your current index first ได้ หากมีคำถาม ทิ้งไว้ในส่วนความคิดเห็นได้