Arasındaki farkı anlamaya çalışıyorum
git push --force
ve
git push --force-with-lease
Benim tahminim, uzaktan kumandanın sadece yerel şubenin sahip olmadığı taahhütleri yoksa uzaktan kumandaya itmesidir ?
--force-with-lease
, modern CPU'lardaki karşılaştırma ve takas yönergelerine benzer: takasın gerçekleşmesini isteyen kişi beklenen değeri ve yeni değeri sağlar. Takas yapan sistem, beklenen değeri gerçek akım değeriyle karşılaştırır ve takas işlemi, yalnızca ikisi eşitse yapar. İle git push
, beklenen değer uzaktan izleme adında ne varsa, örneğin yeni istenen değerle birlikte git push --force-with-lease origin X
kendi origin/X
değerinizi gönderir ; origin
's Git size değişimi yapıp yapmadığını söyler.
origin
yaptıysa, işleminiz tamamlanmıştır. Değilse git fetch origin
, yeni geçerli değeri almak için koşabilir , gerekirse değişikliklerinizi yeniden çalışabilir ve tekrar denemek için başka bir kiralama ile karşılaştır ve takas uygulayabilirsiniz.
git help push
amacını açıklayan kullanım örnekleri vardır (temelde birisinin yeni itmiş olduğu bir değişikliği çöp kutusuna atmanızı önlemek için). Benim için biraz belirsiz olan, uzaktan izleme şubesinin nasıl çalıştığı. Ama muhtemelen tipik olarak, en son ne zaman yeni bir taahhütte bulunduğunuzdafetch
veyapull
hiç yeni taahhütte bulunmadığınızda tam olarak nasıl göründüğüne bakmanız gerekecektir .