@{upstream}
并且 @{push}
确实指向同一件事……当他们这样做时。
撇开玩笑不谈,我的意思是这只是巧合,这是两个配置条目指向同一个遥控器的结果,但它们可能不同。
这个页面上有一个很好的例子。
具体来说,这部分:
@{push}
如果在检出分支名称时运行 git 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}
,不需要它。