混淆来自git的错误信息

我从Git得到这个消息:

你要求从远程的“起源”拉,但没有指定分支。 因为这不是您当前分支的默认远程configuration,所以您必须在命令行上指定一个分支。

任何人都可以解释吗? 更重要的是如何解决它?

你必须告诉git你想从“origin”远程仓库中取出哪个分支。

我想你想要的默认分支(主)所以git pull origin master应该解决您的问题。

请参阅git help branchgit help pullgit help fetch更多信息。

为了解决这个问题,假设你在master分支上,并且希望从origin远程服务器上获得master分支,那么在新的Git版本(1.8或者更新版本)中:

 git branch -u origin/master master 

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

如果你能把这个与推动结合起来,甚至更短:

 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之前,你必须这样做。

消息确切地说是什么。 您当前的分支不与(不跟踪)任何来源的分支关联。 所以git不知道要拉什么。

该怎么办? 那要看…

在大多数情况下,你正在closures一些本地分支xyz ,这个xyz分支是从原来的主人克隆出来的。 解决这个问题的通常方法是切换到master并拉动它与原点同步,然后回到xyzrebase master

但在你的情况下,你可能想要做别的事情。 如果不知道分支机构和遥控器的细节以及您打算如何使用它们,我们就无法知晓。