我从Git收到此消息:
您要求从远程“来源”提取,但未指定分支。因为这不是当前分支的默认配置的远程服务器,所以必须在命令行上指定一个分支。
有人可以解释吗?更重要的是如何解决它?
Answers:
您必须告诉git您要从“原始”远程存储库中拉出哪个分支。
我猜您想使用默认分支(主机),因此git pull origin master
应该解决您的问题。
见git help branch
,git help pull
和git help fetch
更多的信息。
git pull
与当前分支合并并合并,因此其行为完全取决于要签出的分支,而对于分离的HEAD(没有签出分支),无法知道要分支的分支。
要解决此问题,请假设您位于master
分支机构上,并希望使用足够新的Git版本(1.8或更高版本)master
从origin
远程拉分支:
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 branch --set-upstream master origin/master
-u
选项git branch
在我的版本1.8.5.3中是未记录的,这使得在此处进行记录变得更加重要。而且,您已经注意到,该选项在1.7。*版中不可用。由于-u
是的缩写--set-upstream
,难道不应该像--set-upstream
@EvanDonovan的注释那样颠倒它的参数顺序吗?
git branch -u origin/master master
)时,它对我来说是预期的/预期的:“分支母版已设置为从源头跟踪远程分支母版。”
-u
开关实际上是没有的缩写形式--set-upstream
。它的参数顺序实际上与的顺序相反--set-upstream
。我认为直到后来--set-upstream-to
才引入(请注意“至”),这-u
实际上是现在的简称。