我在git中有以下遥控器:
origin file:///some_path/project/ (fetch)
origin file:///some_path/project/ (push)
release file:///some_other_path/project/ (fetch)
release file:///some_other_path/project/ (push)
我打过电话:
git push --set-upstream origin --all
git remote update
当我推送到origin
时:
git push origin
一切运作良好,但当我尝试推送到release
时:
git push release
我收到以下错误:
fatal: You are pushing to remote 'release', which is not the upstream of
your current branch 'master', without telling me what to push
to update which remote branch.
为什么?
答案 0 :(得分:3)
master
分支有一个指示符,它的远程是origin/master
。您可以通过git config -l
:
branch.master.remote=origin
branch.master.merge=refs/heads/master
这样,git push
知道它应该推送您的更改到哪个远程分支,而无需明确指定它。
尝试按release
:git push release master
时指定远程分支。
答案 1 :(得分:2)
您需要告诉git push
您要推送哪个分支,以及它应该去哪里。
有两种方法可以实现这一目标:
git push
明确告诉git push <repository> <refspec>
要做什么。 “refspec”的格式通常为<local branch>:<remote branch>
。因此,在您的情况下,git push release master:master
会将您的本地主人推送到“发布”的主分支。git config --local push.default current
)。然后git push release
将起作用,并将本地主人推送到远程主人。至于为什么它在你的情况下不起作用:看起来你在你的配置中设置了“push.default = simple”(或“upstream”)。然后git会指望你推到分支机构的上游,然后抱怨。