错误:路径规范“test-branch”与 git 已知的任何文件不匹配

问题描述 投票:0回答:13

我是 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

我收到以下错误:

错误:路径规范“test-branch”与 git 已知的任何文件都不匹配。

为什么会出现这种情况?我该如何解决这个问题?

git github git-checkout git-fork
13个回答
70
投票

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

但是,如果您进行了浅克隆(例如使用

--depth 1
),请尝试以下命令来纠正它:

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

并尝试再次结帐分支。

或者尝试浅化您的克隆,例如

git fetch --unshallow
然后再试一次。

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


44
投票

当我运行

git branch
时,它只显示
*master
,而不显示剩余的两个分支。

git branch
未列出
test_branch
,因为您的本地存储库中尚不存在这样的本地分支。克隆存储库时,只会创建一个本地分支(此处为
master
)并在生成的克隆中检出,无论您从中克隆的远程存储库中存在多少分支。在此阶段,
test_branch
仅作为远程跟踪分支存在于您的存储库中,而不是作为本地分支。

当我跑步时

git checkout test-branch

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

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

如果未找到

<branch>
但确实存在跟踪分支 恰好有一个具有匹配名称的遥控器(称之为
<remote>
),将 [
git checkout <branch>
] 视为 相当于

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

只需运行

git checkout -b test_branch --track origin/test_branch

相反。或者更新到更新版本的 Git。


27
投票

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

git branch test-branch  

git branch change-the-title

然后只有你才能对这些分支进行 git checkout

此外,在创建每个分支后,使用 git pull originbranch_name 获取这些特定分支的最新更改,如下面的代码所示

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

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

git branch change-the-title
git checkout change-the-title
git pull origin change-the-title

祝编程愉快:)


17
投票

如果远程分支是在您上次克隆/获取之后创建的,并且您的本地存储库还不知道,那么任何版本的 git 都可能会出现此错误。 我通过首先执行

git fetch
来解决这个问题,它“告诉”您的本地存储库有关所有远程分支的信息。

git fetch
git checkout test-branch

10
投票

只要按照三个步骤,git分支问题就解决了。

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

3
投票

解决方案:

要修复它,您需要先获取

$ git fetch origin

$ git rebase origin/master

当前分支主控已更新。

$ git checkout develop

设置分支开发以跟踪来自原点的远程分支开发。

切换到新分支“develop”


0
投票

如果您的 git 分支不正确,即使区分大小写,也可能会出现此错误。 就我而言,我收到此错误,因为实际分支名称是“CORE-something”,但我像“core-something”一样拉动。


0
投票

我收到此错误是因为网上的说明是

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

我在(我自己主动)运行过

git init
的目录中执行了此操作。 正确的网络指令(对于像我这样的新手)应该是

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


0
投票

以下对我有用

git pull

然后查看所需的分支


0
投票

git fetch && git checkout 分支名称


0
投票

首先检查当前分支中是否有任何文件被修改,使用

git 状态

如果有任何添加或删除,请尝试

git checkout 分支名称


0
投票

如果是标签,可以先

git fetch --all --tags
然后
git checkout <TAG_NAME>


-2
投票

结账前尝试克隆。

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

© www.soinside.com 2019 - 2024. All rights reserved.