无法推送到辅助遥控器

时间:2013-05-06 22:15:03

标签: git

我在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.

为什么?

2 个答案:

答案 0 :(得分:3)

master分支有一个指示符,它的远程是origin/master。您可以通过git config -l

查看此信息
branch.master.remote=origin
branch.master.merge=refs/heads/master

这样,git push知道它应该推送您的更改到哪个远程分支,而无需明确指定它。

尝试按releasegit push release master时指定远程分支。

答案 1 :(得分:2)

您需要告诉git push您要推送哪个分支,以及它应该去哪里。

有两种方法可以实现这一目标:

  • 明确:您可以使用完整语法git push明确告诉git push <repository> <refspec>要做什么。 “refspec”的格式通常为<local branch>:<remote branch>。因此,在您的情况下,git push release master:master会将您的本地主人推送到“发布”的主分支。
  • 隐式:如果您总是希望将当前分支推送到远程存储库中的同名分支,则可以告诉git。为此,请设置pref“push.default = current”(git config --local push.default current)。然后git push release将起作用,并将本地主人推送到远程主人。

至于为什么它在你的情况下不起作用:看起来你在你的配置中设置了“push.default = simple”(或“upstream”)。然后git会指望你推到分支机构的上游,然后抱怨。