提取具有相同名称的远程分支

问题描述

| 我想从远程获取分支,但是我的分支名称不是以远程名称开头的,例如:
git checkout -b BRANCH origin/BRANCH
在某些情况下可以使用,但在某些情况下会出现此错误
fatal: git checkout: updating paths is incompatible with switching branches.
虽然我确定遥控器具有此分支,并且这样有效:
git checkout -b origin/BRANCH
在那之后,我必须切换到另一个分支并将分支起源/ BRANCH重命名为BRANCH,然后再次切换到BRANCH ... 我想知道该错误意味着什么。     

解决方法

        这就是为什么您收到错误消息的原因。
git checkout
可以做两件事之一。如果您仅指定一个分支而不指定任何路径,则它将当前分支切换到您指定的分支。
git checkout mybranch   # switch to branch \'my branch\'
如果提供一些路径,则git将从索引中检出这些路径,或者如果指定分支,则从给定分支中检出这些路径。
git checkout myfile   # checkout \'myfile\' from index
如您所见,存在潜在的歧义。如果您有一个名为
myfile
的分支或一个名为
mybranch
的文件,该怎么办? git解决这种歧义的方式是,它测试参数以首先查看其是否与分支匹配,如果不匹配,则假定该参数引用了一个文件。如果您的分支和文件具有相同的名称,则可以使用此语法强制git将参数视为文件。
git checkout -- myfile  # treat \'myfile\' as a file
创建新分支的ѭ9branch选项仅在使用
checkout
的分支切换形式时有效,而在从索引中检出指定文件时无效。
git checkout -b newbranch myfile  # Illegal. I can\'t use `-b` when
                                  # I\'m checking out files.
如果尝试使用
git checkout -b newbranch origin/BRANCH
并收到此错误,则意味着
origin/BRANCH
与您拥有的任何分支的名称都不匹配,因此git假定您必须引用文件。 要显示您拥有哪些远程分支引用,可以执行
git branch -r
。如果您没有引用您认为应该存在的分支,则可能必须执行ѭ15才能从远程检索它。 如果您提供
-b
但没有分支名称作为新分支的基础,则git默认使用
HEAD
,即当前已签出分支的提交已启用。
git checkout -b origin/BRANCH
这会根据您的当前提交创建一个名为
origin/BRANCH
的新本地分支。充其量,这很可能会引起您一些困惑,并且听起来根本不是您想要的。     ,        “ 3”切换到某个分支,它不会从远程存储库中获取它。
git checkout -b
也会创建分支。要从远程存储库检索分支,请使用ѭ15。