TL; DR;
git pull --rebase --autostash
-r, --rebase[=false|true|merges|preserve|interactive]
When true, rebase the current branch on top of the upstream branch after
fetching. If there is a remote-tracking branch corresponding to the upstream
--autostash, --no-autostash
Before starting rebase, stash local modifications away if
needed, and apply the stash entry when done
ฉันไม่รู้ว่าทำไมยังไม่ได้รับคำตอบ แต่วิธีแก้ปัญหาอย่างที่คุณเห็นนั้นง่าย คำตอบทั้งหมดที่นี่แนะนำเหมือนกัน: เพื่อลบ / บันทึกการเปลี่ยนแปลงในท้องถิ่นของคุณและใช้อัปสตรีมจากนั้น (ถ้าคุณsave
) ใช้การเปลี่ยนแปลงในท้องถิ่นของคุณที่ด้านบน
git pull --rebase --autostash
ทีละขั้นตอนคืออะไร:
1. your local changes saved by `--autostash`
2. your local commits saved by `--rebase`
3. commits from upstream applied to your branch
4. your local commits are restored on top of upstream
5. your local changes are restored to working directory
กรณีของฉัน (อาจเป็นของคุณด้วย):
ฉันมีการเปลี่ยนแปลงในท้องถิ่น (การเปลี่ยนแปลงในไดเรกทอรีการทำงาน):
เมื่อฉันพยายามดึงการเปลี่ยนแปลงระยะไกลฉันได้รับข้อผิดพลาด:
การเปลี่ยนแปลงนี้ไม่ได้ตัดกับการเปลี่ยนแปลงในเครื่อง:
ดังนั้นเมื่อฉันpull --rebase --autostash
บันทึกการเปลี่ยนแปลงในท้องถิ่นและนำไปใช้โดยไม่มีปัญหาใด ๆโดยอัตโนมัติ
ตอนนี้การเปลี่ยนแปลงในท้องถิ่นของฉันลดลงเล็กน้อย: