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