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

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

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

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

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

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

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


当前回答

对我来说有效的方法是:

git fetch

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

git checkout <branchname>

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

其他回答

对我来说,我有一个拼写错误,我的远程分支不存在

使用git branch -a列出远程分支

在尝试了我在这篇文章中读到的大部分内容都没有成功之后,我偶然发现了这个: 远程分支没有显示在“git分支-r”中

原来我的.git/config文件是不正确的。在做了一个简单的修复后,所有的分支都显示出来了。

[remote "origin"]
    url = http://stash.server.com/scm/EX/project.git
    fetch = +refs/heads/master:refs/remotes/origin/master

to

[remote "origin"]
    url = http://stash.server.com/scm/EX/project.git
    fetch = +refs/heads/*:refs/remotes/origin/*

成功了

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

对我来说有效的方法是:

git fetch

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

git checkout <branchname>

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

这不是很直观,但这对我来说很管用……

  mkdir remote.git & cd remote.git & git init
  git remote add origin $REPO
  git fetch origin $BRANCH:refs/remotes/origin/$BRANCH        

然后运行git branch——track命令…

  git branch --track $BRANCH origin/$BRANCH