问题的标题是在标题中,但是这里是情景:
我有一个项目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
,这种不对称性告诉我出了点问题。
那么,当涉及到原点和上游时,跟踪的常见惯例是什么?是"主轨道起源,其他分支跟踪上游"真正的共同模式?
答案 0 :(得分:1)
这是一个定性问题。没有"正确答案" - 由您决定某个分支机构将跟踪哪两个同等有效的遥控器。
你可以在任何地方推送任何东西。没有必要成为命名分支来推送某些内容:例如,您可以执行git push origin upstream/foo:refs/heads/foo
将upstream
' foo
分支推送到{{1}没有任何本地分支。
答案 1 :(得分:1)
如您所述,上游远程最常用于使您的fork与原始存储库保持同步。由于您将更改推送到fork而不是直接上游,因此跟踪origin / master是有意义的。一旦您想将更改推送到上游,您就可以提出拉取请求。