git跟踪分支的目的是什么?

时间:2012-01-23 17:23:30

标签: git remote-branch

我创建了一个跟踪分支,以便whowasout.com跟踪whowasout.com/master

$ git remote -v
origin  git@github.com:venkatd/whowentout.git (fetch)
origin  git@github.com:venkatd/whowentout.git (push)
whowasout.com   git@git01.phpfog.com:whowasout.com (fetch)
whowasout.com   git@git01.phpfog.com:whowasout.com (push)


$ git branch -vv
  master        c33b5dc [origin/master] Merge branch 'whowasout.com'
* whowasout.com 7b6b240 [whowasout.com/master: ahead 1] print statement in test.
php

当我在whowasout.com分支中进行一些更改并执行“git push”时,master会被推送到origin / master。这是预期的行为吗?我期待whowasout.com推送到whowasout.com/master。

为了推动我的更改,我目前输入“git push whowasout.com whowasout.com:master”,但我认为跟踪会使这个过程更快。我是在正确的轨道上吗?

1 个答案:

答案 0 :(得分:2)

你必须这样做:

git push whowasout.com whowasout.com:master

这是因为whowasout.com没有分支whowasout.com而您不需要分支git push。你真正想要的是在whowasout.com远程将whowasout.com分支机构推送到本地主机,这必须像上面那样完成。

要获得所需的行为,以便只有push.default从本地的whowasout.com分支推送到远程的本地主机,您必须将upstream配置设置为tracking(之前叫git config push.default upstream

push.default

请注意,您必须执行此操作,因为默认情况下,跟踪分支有助于在执行提取/拉取时跟踪上游分支。当您更改{{1}}设置时,它也会在推送中发挥作用。否则,推送只是推送匹配的refs,即whowasout.com分支将被推送到远程whowasout.com上的whowasout.com分支。