ฉันมีที่เก็บข้อมูลที่มีข้อผิดพลาดบางอย่าง (D, E และ F สำหรับตัวอย่างนี้)
ABCDEF master และ Origin / master
git reset --hardฉันได้มีการปรับเปลี่ยนพื้นที่เก็บข้อมูลในท้องถิ่นโดยเฉพาะกับ ฉันเอาสาขาก่อนรีเซ็ตดังนั้นตอนนี้ฉันมี repo ที่มีลักษณะ:
A-B-C master
\ D-E-F old_master
A-B-C-D-E-F origin/master
ตอนนี้ฉันต้องการบางส่วนของความมุ่งมั่นที่ไม่ดีเหล่านั้นดังนั้นฉันเชอร์รี่เลือกบิตที่ฉันต้องการและสร้างความมุ่งมั่นใหม่ดังนั้นตอนนี้ฉันมีสิ่งต่อไปนี้ในพื้นที่:
A-B-C-G-H master
\ D-E-F old_master
ตอนนี้ฉันต้องการผลักดันสถานะของกิจการนี้ไปยัง repo ระยะไกล อย่างไรก็ตามเมื่อฉันพยายามทำgit pushGit ให้แปรงฉันอย่างสุภาพ:
$ git push origin +master:master --force
Total 0 (delta 0), reused 0 (delta 0)
error: denying non-fast forward refs/heads/master (you should pull first)
To git@git.example.com:myrepo.git
! [remote rejected] master -> master (non-fast forward)
error: failed to push some refs to 'git@git.example.com:myrepo.git'
ฉันจะรับ repo ระยะไกลเพื่อใช้สถานะปัจจุบันของ repo ท้องถิ่นได้อย่างไร
git push -forceอย่างระมัดระวังมากขึ้น