创建后跟踪分支?

这是我的场景(这是一个非常简单的场景):我在本地创建了一个分支,没有使用
--track
。我做了一些提交并按如下方式推送:
git push origin test
但是现在我不想每次推动这个分支都要键入
origin test
,所以我想让它跟踪
origin/test
(或者是相反的方式?)。 我怎样才能做到这一点?我试过了:
git branch --set-upstream origin/test
它不起作用。当我试图推动它说“一切都是最新的”,它似乎创建了一个名为“origin / test”的实际分支,这不是我想要的。 更新:这里是
.git/config
的内容(运行
--set-upstream
后):
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = git@***.unfuddle.***/***.git
    fetch = +refs/heads/*:refs/remotes/unfuddle/*
    push = refs/heads/master:refs/heads/master
[gui]
    wmstate = normal
    geometry = 1098x644+298+187 207 207
[branch "test"]
    remote = origin
    merge = refs/heads/test
    
已邀请:
你打电话给
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
。     
--set-upstream
已被弃用。请改用
--track
--set-upstream-to
git branch --track test origin/test
    
试试
git push -u origin test
。     
我最终手动编辑
.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
似乎现在工作。我从另一个项目中得到了例子,我用ѭ0设置了分支。 我认为这个问题与
[remote "origin"]
中的
push
声明有关,我认为这使它总是推动主分支。     

要回复问题请先登录注册