错误:pathspec'test-branch'与git已知的任何文件都不匹配

时间:2015-06-12 10:06:47

标签: git github git-checkout git-fork

我是Git的新用户。我已经分叉了一个名为Spoon-Knife的存储库(可以用Git练习分叉)。然后,我通过运行

在本地克隆它
git clone https://github.com/rohinichoudhary/Spoon-Knife.git

该存储库包含三个分支,即

  • master
  • test-branch
  • change-the-title

当我运行git branch时,它只显示*master,而不显示其余两个分支。当我跑步时

git checkout test-branch

我收到以下错误:

  

错误:pathspec'test-branch'与git已知的任何文件都不匹配。

为什么会这样?我该如何解决这个问题?

13 个答案:

答案 0 :(得分:29)

  

当我运行git branch时,它只显示*master,而不显示其余两个分支。

git branch没有列出test_branch,因为您的本地仓库中不存在此类本地分支。克隆存储库时,只会创建一个本地分支(此处为master,并在生成的克隆中检出,而不管您从中克隆的远程存储库中存在多少个分支。在此阶段,test_branch仅作为remote-tracking branch存在于您的仓库中,而不是本地分支。

  

当我跑步时

git checkout test-branch
     

我收到以下错误[...]

你必须使用" old" Git的版本。在更新版本中(from v1.7.0-rc0 onwards),

  

如果找不到<branch>,但确实存在跟踪分支   只有一个匹配名称的远程(称为<remote>),将[git checkout <branch>]视为   相当于

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

简单地运行

git checkout -b test_branch --track origin/test_branch

代替。或者更新到更新版本的Git。

答案 1 :(得分:18)

我的朋友,您需要先在本地创建相应的分支,以便使用此行代码检出其他两个分支

git branch test-branch  

git branch change-the-title

然后只有你能够 git checkout 到这些分支

在创建每个分支后,使用 git pull origin branch_name 对这些特定分支进行最新更改,如下面的代码所示

git branch test-branch
git checkout test-branch
git pull origin test-branch

以及名为更改标题的其他分支在代码=&gt;

之后运行
git branch change-the-title
git checkout change-the-title
git pull origin change-the-title

快乐编程:)

答案 2 :(得分:18)

现代Git应该能够检测远程分支并在结账时创建本地分支。

但是,如果您执行了a shallow clone(例如使用--depth 1),请尝试使用以下命令进行更正:

git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
git fetch --all

并尝试再次结帐。

或者尝试解压缩您的克隆,例如git fetch --unshallow然后再试一次。

另见:How to fetch all remote branches?

答案 3 :(得分:13)

如果远程分支是在您上次克隆/获取后创建的,并且您的本地仓库尚未了解它,您也可以使用任何版本的git获取此错误。我先通过git fetch解决了这个问题,然后告诉&#34;关于所有远程分支的本地回购。

git fetch
git checkout test-branch

答案 4 :(得分:6)

只需按照三个步骤操作即可解决git branch问题。

git remote update
git fetch
git checkout --track origin/test-branch

答案 5 :(得分:1)

解决方案:

要修复它,您需要先获取

$ git fetch origin

$ git rebase origin/master

当前分支主数据是最新的。

$ git checkout develop

分支开发设置跟踪远程分支从源头开发。

切换到新分支'develop'

答案 6 :(得分:0)

我收到此错误是因为Web上的指令是

git checkout https://github.com/veripool/verilog-mode

我在一个我自己运行git init的目录中执行的操作。 正确的网络说明(针对像我这样的新手)应该是

git clone https://github.com/veripool/verilog-mode

答案 7 :(得分:0)

以下为我工作

git pull

然后结帐所需的分支

答案 8 :(得分:0)

git fetch && git checkout分支名称

答案 9 :(得分:0)

首先使用

检查当前分支中是否有任何文件被修改

git 状态

如果有任何添加或删除它然后尝试

git checkout branchName

答案 10 :(得分:0)

如果是标签,可以先git fetch --all --tagsgit checkout <TAG_NAME>

答案 11 :(得分:-1)

如果您的git分支不正确,即使区分大小写,也会出现此错误。 在我的情况下,我得到了这个错误,因为实际的分支名称是“CORE-something”,但我像拉“核心东西”一样拉。

答案 12 :(得分:-2)

在结帐之前尝试克隆。

执行git clone“在哪里找到它”,然后在克隆后检查分支