检出现有的远程分支

19

我看到了不同的检出远程分支的方法:

假设我的朋友推送了新的分支“bigbug”,我想切换本地工作副本到该分支,我有以下选项:

1. git checkout -b bigbug origin/bigbug

2. git checkout -t origin/bigbug

3. git fetch
   git checkout bigbug

以上三种选项在当前的git版本中都可用吗?如果所有选项都有效,则它们之间是否有区别,应该使用哪个?

1个回答

36

结账命令的基础是:

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分支)
当你执行git checkout -t origin/bigbug时,你告诉Git执行与上面相同的两个命令。不同之处在于它将使用远程分支的相同名称命名本地分支(在第一个示例中,您可以更改远程分支的名称为任何您想要的名称)。-t选项与--track相同。
在最后一个命令中,当你运行:git fetch时,你告诉Git查找远程存储库以获取新的提交、分支等。然后当你运行git checkout bigbug时,你告诉它将工作区更改为匹配bigbug分支。如果你有一个同名的本地分支,Git会检出它。如果没有,它将查找匹配名称的远程分支,然后创建一个同名的本地分支
因此,你使用哪一个取决于你想要什么。大多数情况下,它们将起到相同的作用(除了最后一个示例,当你已经有一个与远程分支同名的本地分支时)。最重要的是确切地知道命令和选项的作用,并根据你想要的进行组合。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接