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

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

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

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

คลังเก็บคืออะไร? อะไรที่ผลักและดึงใน Git?

พื้นที่เก็บข้อมูลเป็นหน่วยเก็บข้อมูลสำหรับรหัสซึ่งมีการปรับเปลี่ยนอย่างต่อเนื่องและรับโดยสมาชิกในทีมผ่านกลไกการควบคุมเวอร์ชัน GitHub A ' Pull' หมายถึงคุณกำลังดึงเวอร์ชั่นล่าสุดของที่เก็บลงในที่เก็บข้อมูลในเครื่องของคุณ / IDE (Integrated Development Environment) เช่น Pycharm เป็นต้น

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

หากคุณยังใหม่กับการควบคุมเวอร์ชัน Github ขอแนะนำให้คุณอ่านพื้นฐานทั้งหมดก่อน ในบทความนี้เราคิดว่าคุณมีความรู้พื้นฐานแล้วและรู้รายละเอียดทั้งหมด

วิธีแก้ไข 'การเปลี่ยนแปลงในท้องถิ่นของคุณไปยังไฟล์ต่อไปนี้จะถูกเขียนทับโดยการผสาน'?

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

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

วิธีที่ 1: บังคับให้ pull เพื่อเขียนทับการเปลี่ยนแปลงในเครื่อง

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

ดำเนินการคำสั่งต่อไปนี้ใน IDE ของคุณ:

 git reset - การดึง git อย่างหนัก 

สิ่งนี้จะทำลายการเปลี่ยนแปลงในท้องถิ่นของคุณทันทีเพื่อให้แน่ใจว่าคุณรู้ว่าคุณกำลังทำอะไรและไม่ต้องการการเปลี่ยนแปลงในท้องถิ่นของคุณ

วิธีที่ 2: รักษาการเปลี่ยนแปลงทั้งสอง (เฉพาะที่และจาก repo)

หากคุณต้องการเก็บการเปลี่ยนแปลงทั้งสองอย่างไว้ (การเปลี่ยนแปลงที่ทำในเครื่องและการเปลี่ยนแปลงที่มีอยู่ในที่เก็บ) คุณสามารถเพิ่มและกำหนดการเปลี่ยนแปลงของคุณได้ เมื่อคุณดึงจะเห็นได้ชัดว่ามีความขัดแย้งผสาน ที่นี่คุณสามารถใช้เครื่องมือใน IDE ของคุณ (เช่น Difftool และ mergetool) เพื่อเปรียบเทียบโค้ดสองชิ้นและพิจารณาว่าการเปลี่ยนแปลงใดที่จะต้องเก็บไว้และที่จะลบ นี่คือทางสายกลาง จะไม่มีการเปลี่ยนแปลงใด ๆ จนกว่าคุณจะลบออกด้วยตนเอง

 git เพิ่ม $ the_file_under_error git คอมมิท git pull 

เมื่อคุณได้รับข้อขัดแย้งการรวมให้ปรากฏเครื่องมือแก้ไขข้อขัดแย้งเหล่านั้นและตรวจสอบทีละบรรทัด

วิธีที่ 3: รักษาทั้งการเปลี่ยนแปลง แต่ไม่ยอมรับ

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

 git stash save --keep-index 

หรือ

 คอมไพล์สะสม 
 git pull git stash pop 

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

 git stash นำไปใช้ 

แทนที่จะเป็นป๊อปหากคุณไม่พร้อมที่จะสูญเสียรหัสที่จัดเก็บเนื่องจากความขัดแย้ง

หากดูเหมือนว่าการผสานไม่ได้เป็นตัวเลือกที่ใช้การได้ให้ลองทำ rebase การรีบูตเป็นกระบวนการของการเคลื่อนย้ายหรือรวมลำดับของการคอมมิทเข้ากับคอมมิทฐานใหม่ ในกรณีที่มีการรีบูตให้เปลี่ยนรหัสเป็น:

 git stash git pull --rebase ต้นแบบต้นแบบ git stash pop 

วิธีที่ 4: ทำการเปลี่ยนแปลงในส่วน 'เฉพาะ' ของรหัสของคุณ

หากคุณต้องการเปลี่ยนแปลงบางส่วนของรหัสและไม่ต้องการแทนที่ทุกสิ่งคุณสามารถส่งทุกอย่างที่คุณไม่ต้องการเขียนทับแล้วทำตามวิธีที่ 3 คุณสามารถใช้คำสั่งต่อไปนี้สำหรับการเปลี่ยนแปลงที่คุณทำ ต้องการเขียนทับจากเวอร์ชันปัจจุบันในที่เก็บ:

 พา ธ เช็คเอาต์คอมไพล์ / ถึง / ไฟล์ / ไป / เปลี่ยนกลับ 

หรือ

 git checkout HEAD ^ path / to / file / to / revert 

นอกจากนี้คุณต้องตรวจสอบให้แน่ใจว่าไฟล์ไม่ได้ถูกจัดฉากผ่าน:

 git ทำการรีเซ็ต HEAD path / to / file / to / revert 

จากนั้นดำเนินการกับคำสั่ง pull:

 git pull 

จากนั้นจะพยายามดึงเวอร์ชันจากที่เก็บ

บทความที่น่าสนใจ