无法结帐远程分支

时间:2017-07-14 12:52:21

标签: git

我对我的遥控器上的github中的分支有一个奇怪的问题,例如

$ git branch -r
...
adler/issue-761__NLM
...

但是当我尝试检查分支时,我收到错误

$ git checkout issue-761__NLM
error: pathspec 'issue-761__NLM' did not match any file(s) known to git.

我已尝试git fetch等,但似乎无法解决问题。奇怪的是,我可以从远程显式检出分支,但这使我处于一个独立的头状态

$ git checkout adler/issue-761__NLM
...    
HEAD is now at 94df12a... CONTRIB: Updates to NLM functional

如何解决此问题,以便我可以在本地查看分支并进行处理?

编辑:我被告知这是How do I check out a remote Git branch?的副本。事实并非如此,具体而言我可以执行git checkout adler/issue-761__NLM,而且git fetch无法解决我的问题。

2 个答案:

答案 0 :(得分:2)

git checkout issue-761__NLM无法正常工作,因为(很可能)没有名为issue-761__NLM的本地分支。

您可以create the local branch,然后check it out

$ git branch issue-761__NLM adler/issue-761__NLM
$ git checkout issue-761__NLM

或者,您可以通过运行git checkout with the correct arguments

在一个命令中执行这两项操作
$ git checkout -b issue-761__NLM

如果在名为issue-761__NLM的远程分支指向的位置后面没有歧义,则此命令将运行上面列出的两个命令。

为什么以前工作?

git checkout <branch>的{​​{3}}说:

  

如果找不到<branch>但是在一个具有匹配名称的遥控器(称为<remote>)中确实存在跟踪分支,则将其视为等效于

$ git checkout -b <branch> --track <remote>/<branch>

请注意&#34;正好一个远程&#34; 魔术公式 我猜你刚刚添加了一个辅助遥控器,它还包含issue-761__NLM分支。

答案 1 :(得分:2)

由于某种原因,在这种情况下,从远程分支自动创建本地分支的“速记”不适用。我认为最可能的原因是如果你有第二个遥控器也有一个名为issue-761__NLM

的分支

您可以通过说

来指定adler/issue-761__NLM确实是要跟踪的正确远程分支
git checkout --track adler/issue-761__NLM

--track添加到结帐会告诉git创建本地分支并设置跟踪,而不是让你处于分离的HEAD状态。