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

Roh*_*ary 40 git github git-checkout git-fork

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

git clone https://github.com/rohinichoudhary/Spoon-Knife.git
Run Code Online (Sandbox Code Playgroud)

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

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

当我跑git branch,它只显示*master,而不是剩下的两个分支.当我跑

git checkout test-branch
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

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

为什么会这样?我怎么解决这个问题?

jub*_*0bs 30

当我跑git branch,它只显示*master,而不是剩下的两个分支.

git branch没有列出test_branch,因为您的本地仓库中不存在此类本地分支.克隆repo时,只创建一个本地分支(master此处)并在生成的克隆中检出,而不管从中克隆的远程仓库中是否存在分支数.在此阶段,test_branch仅作为远程跟踪分支存在于您的仓库中,而不是作为本地分支.

当我跑

git checkout test-branch
Run Code Online (Sandbox Code Playgroud)

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

你必须使用Git的"旧"版本.在更新的版本中(从v1.7.0-rc0开始),

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

$ git checkout -b <branch> --track <remote>/<branch>
Run Code Online (Sandbox Code Playgroud)

简单地跑

git checkout -b test_branch --track origin/test_branch
Run Code Online (Sandbox Code Playgroud)

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


NIK*_*SIA 20

我的朋友,你需要首先在本地创建那些相应的分支,以便使用这行代码签出到其他两个分支.

git branch test-branch  
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

对于名为change-the-title的其他分支, 运行以下代码=>

git branch change-the-title
git checkout change-the-title
git pull origin change-the-title
Run Code Online (Sandbox Code Playgroud)

快乐编程:)


ken*_*orb 18

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

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

git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
git fetch --all
Run Code Online (Sandbox Code Playgroud)

并尝试再次结帐.

或者尝试取消对您的克隆的影响,例如git fetch --unshallow再试一次.

另请参阅:如何获取所有远程分支?

  • 其他答案都不适合我(使用 Git 2.7.4),但这个答案对我有用,谢谢!我想我一定是用 --depth 1 克隆了这个存储库,因此最终得到了一个奇怪的 `remote.origin.fetch` 设置。 (2认同)

pil*_*kch 14

如果在上次克隆/获取之后创建了远程分支,并且您的本地存储库还不知道它,那么您也可以使用任何版本的git获取此错误.我通过做git fetch第一个"告诉"你当地的回购有关所有远程分支来解决它.

git fetch
git checkout test-branch
Run Code Online (Sandbox Code Playgroud)


Sha*_*jed 6

只需按照三个步骤,git分支问题就会解决.

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