无法同时创建本地和远程分支(跟踪)

Jim*_*Jim 12 git version-control git-remote git-branch

来自Pro Git:

如果您愿意,可以设置其他跟踪分支 - 不跟踪原点分支并且不跟踪主分支的分支.简单的例子是你刚才看到的例子,运行git checkout -b [branch] [remotename]/[branch]

$ git checkout --track origin/serverfix分支serverfix设置为跟踪远程分支refs/remotes/origin/serverfix.切换到新分支"serverfix"

$ git checkout -b sf origin/serverfix Branch sf设置为跟踪远程分支refs/remotes/origin/serverfix.切换到新的分支"sf"

我的理解是,这提供了一种创建本地分支和上游分支的方法.

但当我这样做时:

git checkout -b iss53 origin/iss53 我明白了:
fatal: Cannot update paths and switch to branch 'iss53' at the same time.

当我这样做时:
git checkout --track origin/iss53 我得到:

致命:无法同时更新路径并切换到分支'iss53'.您是否打算签出无法解决为提交的'origin/iss53'?

为什么?

Von*_*onC 7

Cannot update paths and switch to branch
Run Code Online (Sandbox Code Playgroud)

正如我在" 使用git获取新的上游分支 "中提到的,您可以尝试:

# let's create a new local branch first
git checkout -b iss53
# then reset its starting point
git reset --hard origin/iss53 
Run Code Online (Sandbox Code Playgroud)

确保远程跟踪分支 origin/iss53确实存在(在a之后git fetch origin)

origin/iss53装置有一个iss53上游通过引用的远程回购origin.

如果没有这样的分支,那么你只创建一个本地分支iss53,并像这样推送它:

git push -u origin iss53 
Run Code Online (Sandbox Code Playgroud)

这将建立本地分支机构之间的关联iss53和远程跟踪分支origin/iss53(跟踪新创建的分支iss53origin,通过推动创建).

请参阅" 为什么我需要明确推送新分支? "以获取有关该初始推送的更多信息.