git提取后git checkout如何工作

时间:2019-06-05 16:25:01

标签: git git-checkout git-fetch

我刚刚做了

git fetch origin <remoteBranch>

然后我就做了

git checkout <remoteBranch>

这创建了一个名为<remoteBranch>的本地分支。

那怎么起作用?通常,当我想创建本地分支时,我必须做

git checkout -b

2 个答案:

答案 0 :(得分:2)

据我所知,当您要求结帐时,如果分支在本地不存在,git会尝试查找具有该名称的一个(也只有一个)远程分支。如果存在,并且只有一个(在您的仓库中可能有多个具有相同分支名称的远程服务器),则git猜测这就是您想要的分支,因此它使用远程分支作为上游分支在本地创建它。

答案 1 :(得分:2)

manual for checkout说:

  

git checkout <branch>

     

[...]如果找不到<branch>,但确实在一个具有匹配名称的远程站点(称为<remote>)中存在跟踪分支,则将其等同于

  $ git checkout -b <branch> --track <remote>/<branch>
     

如果分支存在于多个远程站点中,并且其中一个由checkout.defaultRemote配置变量命名,则即使歧义<branch>在所有远程站点中都不唯一,我们仍将使用该分支进行歧义消除遥控器。将其设置为checkout.defaultRemote = origin,如果<branch>模棱两可但在原始远程站点上存在,则始终从那里签出远程分支。另请参见git-config [1]中的checkout.defaultRemote。