来自Pro Git:
如果您愿意,可以设置其他跟踪分支 - 那些不支持分支 跟踪原点上的分支,不跟踪主分支。这很简单 case是你刚才看到的例子,运行git checkout -b [branch] [remotename] / [分支]
$ git checkout --track origin / serverfix Branch 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”哪个不可以 解决为提交?
为什么?
答案 0 :(得分:7)
Cannot update paths and switch to branch
正如我在“Get new upstream branch with git”中提到的那样,您可以尝试:
# let's create a new local branch first
git checkout -b iss53
# then reset its starting point
git reset --hard origin/iss53
确保remote tracking branch origin/iss53
确实存在(在git fetch origin
之后)
origin/iss53
表示iss53
引用的upstream远程仓库中有origin
。
如果没有这样的分支,那么你只创建一个本地分支iss53
,然后像这样推送它:
git push -u origin iss53
这将在本地分支iss53
和远程跟踪分支origin/iss53
之间建立关联(跟踪由{push}创建的iss53
上新创建的分支origin
有关初次推送的详情,请参阅“Why do I need to explicitly push a new branch?”。
答案 1 :(得分:4)
好像你还没有获取提交。所以,首先要做:
git fetch origin
然后:
git checkout --track origin/iss53
答案 2 :(得分:0)
针对其他人的FWIW,具有相同的错误消息:发生这种情况时,潜在的问题是我试图创建一个名称中带有空格的分支。对于我拥有的一组罐头GIT命令,带空格的分支是个问题。
(ObDisclaimer:我距离git专家非常非常远。我只知道我遇到了相同的错误消息问题,并且解决方案与接受的答案不同)