我的问题与切换分支时发生致命Git错误有关。
我试图用这个命令获取一个远程分支
git checkout -b local-name origin/remote-name
但是我得到了这个错误信息:
fatal: git checkout:更新路径与切换分支不兼容 您是否打算签出无法解析为提交的“origin/remote-name”?< / p >
如果我手动创建一个分支,然后拉出远程分支,它就可以工作,就像创建一个新的克隆并签出分支一样。
为什么它不能在我使用的存储库上工作?
你的问题是否与另一个SO问题“结账问题”有关?
例如:与以下方面有关的问题:
git checkout -b [<new_branch>] [<start_point>]
[<start_point>]
'origin/remote-name'
git branch
注意:checkout.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回购还不知道的远程分支时,就会发生这种情况。试一试:
git remote show origin
如果你想要签出的远程分支在“新的远程分支”而不是“跟踪的远程分支”下面,那么你需要先获取它们:
git remote update git fetch
现在它应该工作了:
替代语法,
git fetch origin remote_branch_name:local_branch_name
我怀疑没有名为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命令将实现此目的:
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 remote add remoterepo GIT_URL.git git fetch remoterepo git checkout -b branchname remoterepo/branchname
提示:如果你在下面的输出git branch -v -a中没有看到远程分支,就没有办法检出它。
git branch -v -a
确认在1.7.5.4工作
这不是很直观,但这对我来说很管用……
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 remote add。你可以手动从.git/config中删除它,让git获取创建引用。
git remote add
原来我的.git/config文件是不正确的。在做了一个简单的修复后,所有的分支都显示出来了。
从
[remote "origin"] url = http://stash.server.com/scm/EX/project.git fetch = +refs/heads/master:refs/remotes/origin/master
来
[remote "origin"] url = http://stash.server.com/scm/EX/project.git fetch = +refs/heads/*:refs/remotes/origin/*
成功了
对我来说,我有一个拼写错误,我的远程分支不存在
使用git branch -a列出远程分支
git branch -a