我的问题与切换分支时致命的Git错误有关。

我试图用这个命令获取一个远程分支

git checkout -b local-name origin/remote-name

但是我得到了这个错误信息:

致命:git签出:更新路径与切换分支不兼容。 您是否打算签出无法解析为提交的“origin/remote-name”?

如果我手动创建一个分支,然后拉出远程分支,它就可以工作,就像创建一个新的克隆并签出分支一样。

为什么它不能在我使用的存储库上工作?


当前回答

以上这些方法对我都没用。我的情况略有不同,我的远枝不在原点。但是在不同的存储库中。

git remote add remoterepo GIT_URL.git
git fetch remoterepo
git checkout -b branchname remoterepo/branchname

提示:如果你在下面的输出中没有看到远程分支git分支-v -a,就没有办法检查出来。

确认在1.7.5.4工作

其他回答

在取回无数次之后,仍然没有显示添加的遥控器,尽管斑点在游泳池里。结果——tags选项不应该给git remote add,不管出于什么原因。你可以手动从.git/config中删除它,让git获取创建引用。

不确定这是否有帮助,或者是否与您的问题完全相关,但如果您试图从远程存储库中获取并签出单个分支,那么以下git命令将发挥作用:

url= << URL TO REPOSITORY >>
branch= << BRANCH NAME >>

git init
git remote add origin $url
git fetch origin $branch:origin/$branch
git checkout -b $branch --track origin/$branch

对我来说有效的方法是:

git fetch

它会把所有的参考都拉到你的机器上,用于远程的所有分支。然后我就可以

git checkout <branchname>

而且效果非常好。与投票最多的答案相似,但更简单一点。

我怀疑没有名为remote-name的远程分支,但您无意中创建了名为origin/remote-name的本地分支。

有没有可能你曾经打过:

git branch origin/remote-name

因此创建了一个名为origin/remote-name?输入以下命令:

git checkout origin/remote-name

你会看到:

Switched to branch "origin/remote-name"

也就是说这只是个叫错名字的地方分行,还是

Note: moving to "origin/rework-isscoring" which isn't a local branch
If you want to create a new branch from this checkout, you may do so
(now or later) by using -b with the checkout command again. Example:
  git checkout -b 

这意味着它真的是一个远程分支。

替代语法,

git fetch origin remote_branch_name:local_branch_name