[英]Are there any use cases where `git push --force` would be preferable to `git push --force-with-lease`?
默認,
git push
拒絕更新不是用於覆蓋本地引用的祖先的遠程引用
—即git push
如果它已脫離要push
的分支,則不會更新遠程。
git push --force
禁用這些檢查,並可能導致遠程存儲庫丟失提交; 小心使用
—即git push --force
將更新遠程,無論它對它進行了什么提交或本地跟蹤分支是否知道這些。
git push --force-with-lease
通過要求它們的當前值與我們為它們提供的遠程跟蹤分支相同,將保護所有將要更新的遠程引用
-即git push --force-with-lease
工作在相同的方式, git push --force
,除非遠程進行更新不匹配本地跟蹤分行它會失敗,或者換句話說,用戶不是招”尚未fetch
遙控器上的最新更改。
man git-push
對git版本2.17.1
所有引用。
從上面的描述和我的解釋來看, git push --force-with-lease
和git fetch
ing(如有必要)似乎總是比git push --force
更安全(不知不覺中覆蓋了遠程提交的風險)。
在任何用例中,最好只使用git push --force
而不是git push --force-with-lease
(並根據需要使用git fetch
)? 還是git push --force
僅存在這種行為以實現向后兼容,而git push --force-with-lease
現在是嚴格安全的,因此是可取的替代選擇?
簡短的答案是不,沒有租約使用武力永遠是最好的選擇。 在某些情況下,您可能不太在意找到要出租的當前值,在這種情況下,常規強制用力和租賃強制用力同樣同樣可取。
這掩蓋了一個事實,即如果您不知道引用的期望值,就不能使用“ with lease”(帶有租賃)形式。 因此,從特定的意義上講,如果您完全確定自己不在乎當前值, 並且 不想花時間去獲得它,而如果您確實獲得了它,則將繼續重復比較和交換操作 ,那么您將需要進行至少兩次操作(“獲得當前值”,然后進行“強制租賃”)(如果執行)。 因此,從某種意義上講,可能存在某些情況。 然而,實際上,人們可以用一只鼻子的手指來數這些情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.