【问题标题】:What is the difference between 'git push foo bar -f' and 'git push foo +bar'?'git push foo bar -f' 和 'git push foo +bar' 有什么区别?
【发布时间】:2015-10-26 02:42:18
【问题描述】:

标题所说的。变基时,我总是被告知要避免强制推送,而是在本地分支上使用 + 。有人知道这是为什么吗?

【问题讨论】:

    标签: git syntax branch push


    【解决方案1】:

    git-push

    不同之处在于,使用 + 时仅强制具有此前缀的分支,而使用 -f 时强制推送时指定的所有分支

    在这两种情况下(-f 和 +),您可能会在服务器端丢失某人的提交,因此建议背后的想法可能是,如果您没有拉出 master 并使用所有匹配的分支进行推送,那么 -f 会破坏某人在服务器上的工作,因为不仅您自己的分支会被远程重置。

    在任何情况下,当有多个存储库用户时,您应该很少在环境中进行强制更新,因为任何人签出您的分支都会遇到更新问题。

    【讨论】:

    • "with -f you are force all branches" 是不是表示在使用-f时,指定一个分支是没用的?
    • 当然不是,-f 不猜测分支。它应用于您在推送中指定的所有分支。但只要可能有通配符分支说明符,这可能同时适用于许多分支,如git push -f origin :
    • 好的,所以git push -f origin master 仍然会强制只推送master(即使本地和远程都有其他分支)到origin
    • 是的,只有大师。但是强制push master是个坏主意,除非你是repository的唯一用户,或者你都同意这是正确的做法
    • “强制推送大师是个坏主意”我完全同意。由于git push -f origin master只会强制推送master,所以我无法真正使用+(不一样吗?)
    猜你喜欢
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多