我的问题与 切换分支时发生致命 Git 错误.

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

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

但我收到此错误消息:

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

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

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

有帮助吗?

解决方案

我相信,当你试图检出远程分支您当地的混帐回购协议是不知道的还没有出现。尝试:

git remote show origin

如果要检出远程分支是“新远程分支机构”下,而不是“跟踪远程分支机构”,那么您需要首先获取它们:

git remote update
git fetch

现在它应该工作:

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

其他提示

其他语法,

git fetch origin remote_branch_name:local_branch_name

尝试过的大部分东西,我可以在这个线程没有成功读取之后,我偶然发现这一个: 远程分支没有出现在“混帐分支 - 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>

和其完美地工作。顶端类似投票的答案,却多了几分简单。

我怀疑有指定的远程名称没有远程分支,但已在不经意间创造了一个地方分支命名由来/远程名。

是否有可能你在某个时刻键入:

git branch 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中分支--track命令...

  git branch --track $BRANCH origin/$BRANCH

对于我来说我有一个错字,我的远程分支不存在

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

您的问题可以与其他问题相关吗 “结帐问题”?

IE。:与以下相关的问题:

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

笔记:什么 结帐.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无论出于何种原因。可以手动从的.git /配置中删除它,使GIT中取创建参考文献

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top