我克隆了一个存储库,正在主分支中工作。存在一致的问题: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?我想如果你克隆了一个存储库,那么就会自动跟踪主服务器。无论如何,我真正的问题是
修改 我的本地存储库在其他方面表现得很奇怪;最值得注意的是:我无法创建远程分支。我把它放在一边,做了一个新的克隆,它的表现很奇怪。
首先,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当然是远程回购的名称。奇怪的一点:那里->
是什么?它似乎是新的,并没有出现在旧的本地回购或遥控器的其他克隆。
但现在分支和跟踪工作正如所宣传的那样。
答案 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