我的问题与切换分支时致命的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”?
如果我手动创建一个分支,然后拉出远程分支,它就可以工作,就像创建一个新的克隆并签出分支一样。
为什么它不能在我使用的存储库上工作?
当前回答
这不是很直观,但这对我来说很管用……
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
其他回答
对我来说,我有一个拼写错误,我的远程分支不存在
使用git branch -a列出远程分支
我怀疑没有名为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
这意味着它真的是一个远程分支。
这不是很直观,但这对我来说很管用……
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
对我来说有效的方法是:
git fetch
它会把所有的参考都拉到你的机器上,用于远程的所有分支。然后我就可以
git checkout <branchname>
而且效果非常好。与投票最多的答案相似,但更简单一点。
替代语法,
git fetch origin remote_branch_name:local_branch_name