繁体   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