git:为什么我得到错误错误:pathspec''与git已知的任何文件都不匹配
问题描述:
我发现了一个有趣的场景。此问题与this one有关。git:为什么我得到错误错误:pathspec'<branch name>'与git已知的任何文件都不匹配
我有git(版本1.8.3.1),我在本地创建了一个分支,然后我将它推送到我的远程存储库。我检查了(git branch -a
)它存在于远程存储库中。
现在,我在另一台机器上安装了存储库。当我运行以下命令(使用版本1.8.3.1):
git fetch
git checkout <my branch>
我正确签出到我的分支。
但是,我也有git版本的git版本2.6.3。当我运行上面的命令,我得到的错误:
error: pathspec '<branch name>' did not match any file(s) known to git.
我期望在旧的Git版本情况下,该错误(见链接的问题),但它为什么失败的版本2.6。 3?
如果我使用旧版本的git结帐到我的分支,我也可以使用git 2.6.3版检出它。
这是否意味着git开发人员决定删除v1.7.0-rc0中引入的这个很好的功能,并且我必须运行git checkout -b <branch> --track <remote>/<branch>
或者我在某处犯了什么错误?
答
如果origin/mybranch
确实存在,一个简单的
git checkout mybranch
应该够了。
因此请仔细检查git branch -r
在git fetch
之后显示的内容。
If
<branch>
is not found but there does exist a tracking branch in exactly one remote (call it<remote>
) with a matching name, treat as equivalent to
$ git checkout -b <branch> --track <remote>/<branch>
尝试'混帐取起源:裁判/遥控器/产地/ && git的结帐'。你的'git fetch'没有任何东西。此外,你需要确保存在“origin”。如果没有,请先运行'git remote add origin '。 'origin'可以是另一个名字,如果它已经在那里,可以用'refs/remotes/origin/'替换'orign'。 –
ElpieKay
将'git branch -r'的输出添加到您的问题中。我想我知道答案,但需要参考它。 – torek
您可以使用'git branch -a'来检查分支名称是否存在于远程。如果存在,则在'git checkout'之后**复制**(不输入)分支名称。如果分支名称是“-a”,通常会导致拼写错误,因为'-a'与'-a'不同。所以你最好复制分支名称。 –