วิธีแก้ไขข้อผิดพลาด 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
จากนั้นจะพยายามดึงเวอร์ชันจากที่เก็บ