git - Git checkout 远程分支不工作

  显示原文与译文双语对照的内容

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

我尝试使用命令获取一个远程分支


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

但我得到了这个错误消息:

致命:git checkout: 更新路径与切换分支不兼容。
你打算签出无法解析为提交的'原点/remote-name'?

如果我创建一个分支,然后拉远程分支,它就会工作,就像创建一个新克隆并检查分支。

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

时间:

我相信这发生在你试图签出你的本地git仓库还不知道的远程分支时。 尝试以下方法:


git remote show origin

如果要签出的远程分支位于"新建远程分支"而不是"跟踪的远程分支"下,则需要先获取它们:


git remote update
git fetch

现在它应该可以工作了:


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

在尝试了我在这个线程中阅读的大部分内容之后,我无意中发现了这一点: 远程分支不能在"git branch R"中显示

结果我的。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命令将获得成功:


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 没有办法去检查它。

确认在 1.7.5.4 上工作

对我来说,工作是:

 
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

你的问题可以与其他问题链接,那么问题 "签出问题"

换句话说,: 与以下内容相关的问题:

  • 旧版本的Git
  • 一个奇怪的签出语法,应该是: git checkout -b [<new_branch>] [<start_point>][<start_point>] 引用启动新分支的提交名称,而 'origin/remote-name' 不是。
    ( git branch 支持start_point作为远程分支的名称)

注意: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] 同时重命名分支并重置新分支的新起始点,这被认为不兼容。

获取了无数次仍然添加的遥控器没有出现,虽然斑点在池中。 --tags选项不应该给 git remote add 不管出于什么原因。 你可以从。git/config手动删除它来创建 git fetch 。

...