结帐现有的远程分支

时间:2015-07-04 18:02:05

标签: git github

我已经看到了检查现有远程分支的不同方法:

假设我的朋友推出了新的分支'bigbug',我想检查并将我的本地工作副本切换到该分支,我有以下选项:

1. git checkout -b bigbug origin/bigbug

2. git checkout -t origin/bigbug

3. git fetch
   git checkout bigbug

当前git版本中是否有以上三个选项可用且有效?如果一切都有效,那么它们和使用哪一个之间是否存在差异?

1 个答案:

答案 0 :(得分:26)

checkout命令的基础是:

git checkout --[options] <local branch> <remote>/<tracked branch>

当您执行git checkout -b bigbug origin/bigbug时,您要告诉Git执行两个命令:

  1. git branch bigbug origin / bigbug(git创建一个名为bigbug的分支,并设置跟踪到origin / bigbug)
  2. git checkout bigbug(git更改你的工作区以匹配bigbug分支)
  3. 当您执行git checkout -t origin/bigbug时,您要告诉Git执行上面相同的两个命令。不同之处在于它将使用远程分支的相同名称命名本地分支(在第一个示例中,您可以将远程分支的名称更改为您想要的任何名称)。 -t 选项与 - track 相同。

    在上一个命令中,当您运行:git fetch时,您告诉Git在远程存储库中查找新的提交,分支等。然后当您运行git checkout bigbug时,告诉它更改工作区匹配bigbug分支。 如果您有一个具有该名称的本地分支,Git将结帐。如果没有,它会将远程分支看作一个匹配的名称,然后创建一个同名的本地分支

    所以,当你使用一个或另一个时,它取决于你想要什么。大多数情况下它们将以相同的方式工作(除了在最后一个示例中,当您已经拥有一个具有相同远程分支名称的本地分支时)。最重要的是确切地知道命令和选项的作用,并根据你的需要将它们组合起来。