我对我的遥控器上的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
无法解决我的问题。
答案 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状态。