这是我的场景(这是一个非常简单的场景):我在本地创建了一个分支,而没有使用--track
。我做了一些提交,然后推了它:
git push origin test
但现在我不想每次推动这个分支时都要输入{{1}},所以我想让它跟踪origin test
(或者反过来呢?)。
我怎样才能做到这一点?我试过了:
origin/test
它不起作用。当我试图推动它说“一切都是最新的”,它似乎创建了一个名为“origin / test”的实际分支,这不是我想要的。
更新:以下是git branch --set-upstream origin/test
的内容(运行.git/config
后):
--set-upstream
答案 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"]
语句有关,我认为这使得它总是推动主分支。