2014-03-13 52 views
1

正如我的标题所暗示的那样,当我检出一个新分支并使用git branch -u origin/master时,它确实会跟踪原点/主标记 - 不过,仅适用于pull。当我在CURRENT分支上执行push时,git会将我的主分支推送到origin/master。这混淆了我在几个方面:git --set-upstream-to被忽略,其他分支被推送

  1. 什么是“轨道”的真正含义 - 我认为这意味着轨道都pushpull

  2. 如何push工作?到目前为止,我仍然认为push适用于当前分支,那么为什么它推动我的主分支?

  3. 如何真正为push设置上游?

回答

2

关系设置正确,但git的默认推送行为并不关心它。您需要将您的push.default配置设置为simpleupstream

没有参数的推送将执行任何操作push.default所说的,默认情况下它将尝试使用同样存在于远程的名称推送所有分支。

您可以查看关于push.default的git-config文档以获得可能性的概述。

+0

此默认值将在Git 2.0中更改。然后默认会变成'简单'。 – LopSae

+0

是的,无论何时git 2.0终于发布,该版本将默认更改。 –

1

当您创建一个本地分支,它是推动远程首次使用

git push origin your_branch -u 

自动跟踪本地远程分支的时间都拉和推。

+0

这与设置上游相同 - 仅用于“拉”而不用于“推” – Xufeng