来自git的混淆错误消息

cin*_*nek 87 git github

我从Git那里收到了这条消息:

您要求从远程"原点"拉出,但没有指定分支.因为这不是当前分支的默认配置远程,所以必须在命令行上指定分支.

有人能解释一下吗?更重要的是如何解决它?

p4b*_*bl0 84

你必须告诉git你想从"origin"远程回购中提取哪个分支.

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

git help branch,git help pullgit help fetch 更多的信息.

  • 为了使它工作,我不得不结帐"主"分支(没有选择分支)和拉,这解决了问题. (2认同)

Ari*_*zis 82

要解决这个问题,假设你在master分支机构并且希望masterorigin远程启动分支,在新的Git版本(1.8或更新版本)中:

git branch -u origin/master master
Run Code Online (Sandbox Code Playgroud)

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

如果你可以将它与推动相结合,那就更短了:

git push -u origin master
Run Code Online (Sandbox Code Playgroud)

此后,平原git pull/ git push将做你期望的.


在Git 1.7系列中,git branch没有-u开关(只git push做过),而是你不得不使用更长的时间--set-upstream:

git branch --set-upstream master origin/master
Run Code Online (Sandbox Code Playgroud)

请注意相反的参数的反转-u.我不止一次地摸索了这个订单.


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

git config branch.master.remote origin
git config branch.master.merge refs/heads/master
Run Code Online (Sandbox Code Playgroud)

在1.7之前,你必须这样做.


Tom*_*icz 5

消息确切地说明了它的内容。您当前的分支不与origin中的任何分支关联(不跟踪)。所以 git 不知道要拉什么。

该怎么办?那要看...

在大多数常见情况下,您正在处理一些本地分支xyz,该分支从master分支,而 master 是从origin的 master 克隆的。解决该问题的通常方法是切换到master并拉动以使其与origin同步,然后返回到xyzrebase master

但根据您的情况,您可能想做其他事情。如果不知道您的分支和遥控器的详细信息以及您打算如何使用它们,我们就无法知道它。