繁体   English   中英

Git 的@{upstream} 和@{push} 有什么不同?

[英]How do Git's @{upstream} and @{push} differ?

Git 分支的@{upstream}和较新的@{push}什么区别?

据我了解, @{upstream}是分支的上游跟踪引用, @{push}push将推送到的引用。 就我的直觉而言,它们是同一回事。 检查几个方便的分支git rev-parse @{upstream}git rev-parse @{push} ,并且(我认为可能不会以相同的方式git rev-parse --abbrev-ref @{upstream}git rev-parse --abbrev-ref @{upstream}git rev-parse --abbrev-ref @{push}

@{upstream}@{push}确实指向同一件事......当他们这样做时

撇开笑话不谈,我的意思是这只是巧合,这是两个配置条目指向同一个遥控器的结果,但它们可能不同。

这个页面上有一个很好的例子。

具体来说,这部分:

如果在签出分支名称时运行 git push ,则后缀@{push}报告分支“我们将推送到的位置”(如果未指定分支名称,则为当前HEAD )。 由于我们的推送目的地在远程存储库中,当然,我们报告与该分支对应的本地跟踪分支(即refs/remotes/某些内容)。

$ git config push.default current
$ git config remote.pushdefault myfork
$ git switch -c mybranch origin/master

$ git rev-parse --symbolic-full-name @{upstream}
refs/remotes/origin/master

$ git rev-parse --symbolic-full-name @{push}
refs/remotes/myfork/mybranch

请注意,在示例中,我们设置了一个三角形工作流,我们从一个位置拉动并推送到另一个位置。 在非三角工作流中, @{push}@{upstream}是一样的,不需要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM