如何制作主分支轨道?

时间:2011-02-25 00:38:45

标签: git

我克隆了一个存储库,正在主分支中工作。存在一致的问题:git push(和git push)无法正常工作,并提供了长时间无法解释的错误消息。通过反复试验,我发现git push origin master正确地进行了推送。但现在我注意到了一些奇怪的事情:

$ git config push.default tracking
$ git push
fatal: The current branch master is not tracking anything.

WTF?我想如果你克隆了一个存储库,那么就会自动跟踪主服务器。无论如何,我真正的问题是

  1. 我应该如何创建克隆以便跟踪分支?
  2. 有跟踪的后果(当前除外)是什么?
  3. 如何修复当前情况,以便我的分支跟踪遥控器?
  4. 修改 我的本地存储库在其他方面表现得很奇怪;最值得注意的是:我无法创建远程分支。我把它放在一边,做了一个新的克隆,它的表现很奇怪。

    首先,master正在追踪(是的)。其次,我能够创建一个远程分支,但这很奇怪。

    Ratatouille $ git push origin origin:refs/heads/premium
    Total 0 (delta 0), reused 0 (delta 0)
    To git@github.com:gamecrush/Ratatouille.git
     * [new branch]      origin/HEAD -> premium
    Ratatouille $ git branch -r
      origin/HEAD -> origin/master
      origin/master
      origin/premium
    

    Ratatouille当然是远程回购的名称。奇怪的一点:那里->是什么?它似乎是新的,并没有出现在旧的本地回购或遥控器的其他克隆。

    但现在分支和跟踪工作正如所宣传的那样。

3 个答案:

答案 0 :(得分:23)

您的branch.autosetupmerge设置为什么?默认情况下,它应该在您克隆时设置分支跟踪。

尝试使用此设置分支的上游以使分支跟踪远程。

git branch --set-upstream master origin/master

答案 1 :(得分:6)

另一种方法:在第一次执行推送期间将主设备设置为跟踪遥控器:

git push -u origin master

-u将与--set-upstream相同。之后,运行git branch -vv以查看包含其跟踪分支的分支列表。

答案 2 :(得分:4)

其他选择:

git branch --set-upstream-to=origin/master