创建后跟踪分支?

时间:2011-04-07 11:22:30

标签: git git-branch git-remote

这是我的场景(这是一个非常简单的场景):我在本地创建了一个分支,而没有使用--track。我做了一些提交,然后推了它:

git push origin test

但现在我不想每次推动这个分支时都要输入{​​{1}},所以我想让它跟踪origin test(或者反过来呢?)。

我怎样才能做到这一点?我试过了:

origin/test

它不起作用。当我试图推动它说“一切都是最新的”,它似乎创建了一个名为“origin / test”的实际分支,这不是我想要的。

更新:以下是git branch --set-upstream origin/test 的内容(运行.git/config后):

--set-upstream

4 个答案:

答案 0 :(得分:6)

您在调用git branch --set-uptstream

时忘记指定本地分支
git branch --set-upstream test origin/test

编辑: 好吧,也许你没有忘记它(因为最后一个参数可以省略),但是你想设置本地分支来跟踪远程分支(manpage git-branch),而你做了相反的事情(假设你是目前在分行test

git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]

您指定origin/test跟踪test

答案 1 :(得分:1)

--set-upstream已被弃用。请改用--track--set-upstream-to

git branch --track test origin/test

答案 2 :(得分:0)

尝试git push -u origin test

答案 3 :(得分:0)

我最终手动编辑.git/config。这就是现在的样子:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = git@***.unfuddle.***/***.git
    fetch = +refs/heads/*:refs/remotes/unfuddle/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[branch "test"]
    remote = origin
    merge = refs/heads/test

现在似乎工作了。我从另一个项目中得到了示例,我使用--track设置了分支。

我认为问题与push中的[remote "origin"]语句有关,我认为这使得它总是推动主分支。