我的问题与切换分支时致命的Git错误有关。
我试图用这个命令获取一个远程分支
git checkout -b local-name origin/remote-name
但是我得到了这个错误信息:
致命:git签出:更新路径与切换分支不兼容。 您是否打算签出无法解析为提交的“origin/remote-name”?
如果我手动创建一个分支,然后拉出远程分支,它就可以工作,就像创建一个新的克隆并签出分支一样。
为什么它不能在我使用的存储库上工作?
我的问题与切换分支时致命的Git错误有关。
我试图用这个命令获取一个远程分支
git checkout -b local-name origin/remote-name
但是我得到了这个错误信息:
致命:git签出:更新路径与切换分支不兼容。 您是否打算签出无法解析为提交的“origin/remote-name”?
如果我手动创建一个分支,然后拉出远程分支,它就可以工作,就像创建一个新的克隆并签出分支一样。
为什么它不能在我使用的存储库上工作?
当前回答
在尝试了我在这篇文章中读到的大部分内容都没有成功之后,我偶然发现了这个: 远程分支没有显示在“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/*
成功了
其他回答
不确定这是否有帮助,或者是否与您的问题完全相关,但如果您试图从远程存储库中获取并签出单个分支,那么以下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>
而且效果非常好。与投票最多的答案相似,但更简单一点。
您的问题是否与另一个SO问题“结帐问题”有关?
例如:与以下方面有关的问题:
旧版本的Git 一个奇怪的签出语法,应该是:git checkout -b [<new_branch>] [<start_point>],其中[<start_point>]指的是启动新分支的提交名称,而'origin/remote-name'不是这样的。 (而git分支支持start_point作为远程分支的名称)
注意:check - out.sh脚本说的是:
if test '' != "$newbranch$force$merge"
then
die "git checkout: updating paths is incompatible with switching branches/forcing$hint"
fi
这就像语法git checkout -b [] [remote_branch_name]既重命名了分支,又重置了新分支的新起点,这被认为是不兼容的。
以上这些方法对我都没用。我的情况略有不同,我的远枝不在原点。但是在不同的存储库中。
git remote add remoterepo GIT_URL.git
git fetch remoterepo
git checkout -b branchname remoterepo/branchname
提示:如果你在下面的输出中没有看到远程分支git分支-v -a,就没有办法检查出来。
确认在1.7.5.4工作
对我来说,我有一个拼写错误,我的远程分支不存在
使用git branch -a列出远程分支