簡體   English   中英

有沒有用例比git push --force-with-lease更可取的是git push --force?

[英]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-leasegit 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM