gpt4 book ai didi

git - 获取同名的远程分支

转载 作者:太空狗 更新时间:2023-10-29 13:17:08 25 4
gpt4 key购买 nike

我想从远程获取一个分支,但是我的分支名称不是以远程名称开头,例如:

git checkout -b BRANCH origin/BRANCH

它在某些情况下有效,但在某些情况下我会收到此错误:

fatal: git checkout: updating paths is incompatible with switching branches.

虽然我确定 Remote 有这个分支,但它有效:

git checkout -b origin/BRANCH

之后,我必须切换到另一个分支并将分支 origin/BRANCH 重命名为 BRANCH,然后再次切换到 BRANCH ...我想知道该错误是什么意思。

最佳答案

这就是您收到错误消息的原因。

git checkout 可以做两件事之一。如果您只指定一个分支而不指定任何路径,那么它会将您当前的分支切换到您指定的分支。

git checkout mybranch   # switch to branch 'my branch'

如果您提供了一些路径,那么 git 将从索引中 check out 这些路径,或者如果您指定了一个分支,则从给定的分支中 check out 这些路径。

git checkout myfile   # checkout 'myfile' from index

如您所见,存在潜在的歧义。如果您有一个名为 myfile 的分支或一个名为 mybranch 的文件,会发生什么情况?

git 解决这种歧义的方法是首先测试参数以查看它是否与分支匹配,如果不匹配则假定该参数引用文件。如果您有同名的分支和文件,您可以强制 git 使用此语法将参数视为文件。

git checkout -- myfile  # treat 'myfile' as a file

创建新分支的-b选项仅在使用checkout的分支切换形式时有效,在 check out 指定文件时无效来自索引。

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。如果您没有对您认为应该存在的分支的引用,您可能必须执行 git fetch 以从远程检索它。

如果您提供 -b 但没有分支名称作为新分支的基础,则 git 默认使用 HEAD,即您当前 checkout 的分支所在的提交.

git checkout -b origin/BRANCH

这会根据您当前的提交创建一个名为 origin/BRANCH 的新本地 分支。这充其量可能会让您感到困惑,而且听起来根本不是您想要的。

关于git - 获取同名的远程分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6315430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com