ฉันพยายามเข้าใจความแตกต่างระหว่าง
git push --force
และ
git push --force-with-lease
ฉันเดาว่าดันเพียงหลังระยะไกลถ้าระยะไกลไม่ได้มีการกระทำที่สาขาในประเทศไม่ได้มี ?
--force-with-lease
นั้นคล้ายกับคำแนะนำในการเปรียบเทียบและสลับบนซีพียูสมัยใหม่: ผู้ที่ต้องการให้การแลกเปลี่ยนเกิดขึ้นจะให้ค่าที่คาดหวังและค่าใหม่ ระบบที่ทำการแลกเปลี่ยนจะเปรียบเทียบค่าที่คาดหวังกับมูลค่าปัจจุบันที่แท้จริงและทำการแลกเปลี่ยนหากทั้งสองเท่ากัน ด้วยgit push
ค่าที่คาดหวังคือสิ่งที่อยู่ในชื่อการติดตามระยะไกลเช่นgit push --force-with-lease origin X
ส่งของคุณเองorigin/X
พร้อมกับค่าที่ต้องการใหม่ origin
Git บอกคุณหรือไม่ว่ามันเป็นการแลกเปลี่ยนหรือไม่
origin
ทำการแลกเปลี่ยนคุณก็เสร็จเรียบร้อย ถ้าไม่ได้คุณสามารถเรียกใช้git fetch origin
ที่จะรับใหม่ค่าปัจจุบันปรับปรุงเปลี่ยนแปลงของคุณถ้าจำเป็นและเรียกใช้อีกแรงที่มีสัญญาเช่าเปรียบเทียบและแลกเปลี่ยนเพื่อลองอีกครั้ง
git help push
มีกรณีใช้อธิบายวัตถุประสงค์ (โดยทั่วไปเพื่อป้องกันไม่ให้คุณทิ้งการเปลี่ยนแปลงที่เกิดขึ้นกับใครบางคนที่เพิ่งผลัก) สิ่งที่ชัดเจนสำหรับฉันคือการทำงานของสาขาการติดตามระยะไกล แต่โดยทั่วไปน่าจะเป็นไปได้ที่จะต้องดูว่ามันดูครั้งสุดท้ายที่คุณทำfetch
หรือpull
ไม่มีความมุ่งมั่นใหม่