在有原产地和上游遥控器的回购中,我的分支机构应该跟踪什么?

时间:2015-08-18 21:17:59

标签: git github branch git-branch git-remote

问题的标题是在标题中,但是这里是情景:

我有一个项目P分叉在github上,它已经陈旧了一段时间。与此同时,项目的上游版本一直在向前推进,有一些提交,而且关键的是一些新的分支机构。

所以,现在我想把它弄清楚并了解它。我将P的现有分支克隆到我的机器中,然后检查git status

On branch master
Your branch is up-to-date with 'origin/master'.

因此,本地master正在跟踪origin/master。现在,我添加upstream遥控器并执行git fetch upstream,我看到有一些新分支。我想将其中的一部分纳入origin,这也是我感到困惑的地方。经过大量搜索后,似乎常见的建议与此处的建议类似:Get new upstream branch with git您可以在其中设置新的本地分支以跟踪新的upstream分支,然后将它们推送到http://localhost:4502/content/en/postformtest.html 1}}。

问题是,在此过程之后,您的origin设置为跟踪master,而origin/master设置为跟踪shinynewbranch,这种不对称性告诉我出了点问题。

那么,当涉及到原点和上游时,跟踪的常见惯例是什么?是"主轨道起源,其他分支跟踪上游"真正的共同模式?

2 个答案:

答案 0 :(得分:1)

这是一个定性问题。没有"正确答案" - 由您决定某个分支机构将跟踪哪两个同等有效的遥控器。

你可以在任何地方推送任何东西。没有必要成为命名分支来推送某些内容:例如,您可以执行git push origin upstream/foo:refs/heads/fooupstream' foo分支推送到{{1}没有任何本地分支。

答案 1 :(得分:1)

如您所述,上游远程最常用于使您的fork与原始存储库保持同步。由于您将更改推送到fork而不是直接上游,因此跟踪origin / master是有意义的。一旦您想将更改推送到上游,您就可以提出拉取请求。