来自 git 的混淆错误消息

我收到了 Git 的信息:

您要求从远程“原点”提取,但没有指定 a branch. Because this is not the default configured remote 对于当前分支,必须在命令行上指定分支。

有人能解释一下吗,更重要的是怎么解决?

75238 次浏览

你必须告诉 git 你想从“原点”远程回购中抽取哪个分支。

我想您需要默认的分支(master) ,因此 git pull origin master应该能够修复您的问题。

有关更多信息,请参见 git help branchgit help pullgit help fetch

信息说明了一切。您当前的分支与 起源中的任何分支都没有关联(没有跟踪)。所以 Git 不知道该怎么办。

怎么办? 看情况..。

在大多数通常的情况下,你正在工作的一些本地分支 某某,它从 师父的分支是从 origin的主机克隆。通常解决这个问题的方法是切换到 师父,然后拉动它与 origin同步,然后返回到 某某rebase master

But in your situation you might want to do something else. We can't know it without knowing details of your branches and remotes and how you intent to use them.

To fix it, assuming you are on the master branch and want to pull the master branch from the origin remote, in new enough Git versions (1.8 or newer):

git branch -u origin/master master

(类似于其他分支和/或遥控器。)

If you can combine this with a push, it’s even shorter:

git push -u origin master

此后,一个简单的 git pull/git push将做您期望的事情。


在 Git 1.7系列中,git branch没有 -u开关(只有 git push有) ,相反你必须使用更长的 --set-upstream:

git branch --set-upstream master origin/master

注意与 -u相比参数的反转。我不止一次弄错了这个顺序。


顺便说一下,所有这些都是执行以下操作的简称,您仍然可以明确地执行以下操作:

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

在1.7之前,你用 曾经这样做。