【问题标题】:How to checkout a remote branch in Git?如何在 Git 中签出远程分支?
【发布时间】:2012-01-16 09:19:21
【问题描述】:

有人将“新功能”分支推送到共享仓库:

git push -u new_feature_branch

现在,我想在我的本地机器上创建这个分支的副本,以便测试新功能。

最简单的方法是什么? (在checkout之前需要fetch/pull吗?)

【问题讨论】:

标签: git git-branch git-checkout


【解决方案1】:

我通常觉得没有必要使用git fetchgit pull 就足够了。 git pull 会将您的存储库与远程同步。 new_feature_branch 将可用。

git checkout new_feature_branch 会注意到 origin 的分支并为您创建一个新的本地跟踪分支并切换到该分支。

git pull
git checkout new_feature_branch

【讨论】:

  • git pull == git fetch + git merge
  • 如果你不想要一个分离的头部,请使用 -b
【解决方案2】:

最简单的方法是:

git fetch
git checkout -t origin/new_feature_branch

这只是最初完成的。从现在开始,您可以继续使用该分支,就像为您使用的其他分支一样。

【讨论】:

    【解决方案3】:

    您需要获取上游更改,以便您的本地存储库包含相关对象(git fetch --allgit fetch <remote>)。

    之后,您可以使用git checkout <branch> 执行结帐(如果您想明确地执行此操作,可以键入git checkout -b <branch> <remote>/<branch>;本地名称不必与远程名称相同)。如果您还没有该名称的本地分支,它将检出远程分支并跟踪它。

    作为替代方案,您可以使用git pull <remote> <branch>,但这会 - 使用默认设置 - 将远程分支合并到您的当前分支中,这可能不是您想要的。

    【讨论】:

    • 我想知道为什么这个答案说你必须使用fetch --all,而最重要的答案只是提到fetch。是哪一个?
    • @PetriSirkkala 答案并不是说你必须使用--allfetch --all 表示获取所有遥控器(如果您有多个遥控器,例如 origin)。
    【解决方案4】:
    git fetch && git checkout new_feature_branch
    

    【讨论】:

    【解决方案5】:

    为了将您的存储库与远程分支运行git fetch 同步,然后在获取运行git checkout new_branch_name 之后 如果您使用 vs code 添加 git Graph 扩展来诊断问题。它也将帮助您将来使用。

    【讨论】:

      猜你喜欢
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 2015-09-26
      • 2021-03-07
      • 1970-01-01
      • 2015-04-24
      相关资源
      最近更新 更多