创建后跟踪分支?

Fel*_*lix 2 git git-remote git-branch

这是我的场景(这是一个非常简单的场景):我在本地创建了一个分支,没有使用--track.我做了一些提交并按如下方式推送:

git push origin test
Run Code Online (Sandbox Code Playgroud)

但是现在我不想origin test每次推动这个分支都要打字,所以我想让它跟踪origin/test(或者是相反的方式?).

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

git branch --set-upstream origin/test
Run Code Online (Sandbox Code Playgroud)

它不起作用.当我试图推动它说"一切都是最新的",它似乎创建了一个名为"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
Run Code Online (Sandbox Code Playgroud)

Kin*_*nch 6

你打电话时忘了指定本地分支 git branch --set-uptstream

git branch --set-upstream test origin/test
Run Code Online (Sandbox Code Playgroud)

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

git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
Run Code Online (Sandbox Code Playgroud)

您指定该origin/test轨道test.

  • 您需要删除使用不正确的命令创建的本地origin/test分支才能使其工作.我认为,正确的顺序是<老枝> <新枝>的集上游,但如果本地原点/测试分支仍然存在,将有效地影远程起源的分支测试. (2认同)