【问题标题】:To clone all remote branches including upstream克隆所有远程分支,包括上游
【发布时间】:2019-07-14 13:13:46
【问题描述】:
  • 添加上游远程跟踪分支的正确方法是什么?
  • 如何克隆所有远程分支,包括上游分支?

我知道这会很快被标记为重复,但请在做出这样的决定之前阅读整篇文章。特别是,验证两个*包含的答案* 不是您所提议的,并验证您所提议的内容是否可以解决我的具体问题,而不仅仅是*似乎*标题相似。

对于问题一,我做了git remote add upstream 并获得了remotes/upstream/master 的远程跟踪分支,然后是git checkout 本地分支。这是我的结果(我不确定它是否处于正确的阶段,因为我期望一个远程一个本地):

$ git branch -avv | grep upstream
  upstream                         34e36ed [upstream/master] added travis-CI ...
  remotes/origin/upstream          34e36ed added travis-CI ...
  remotes/upstream/master          34e36ed added travis-CI ...

现在真正的麻烦是第二个问题。

  • 我从 Machine-A 推到 GH,然后在 Machine-B 上做了git pull。然后在 Machine-B 中,我发现我不再有 remotes/upstream/master 分支,只有 remotes/origin/upstream。我希望在 Machine-B upstream 分支中仍然像在 Machine-A 中一样跟踪 upstream/master 分支。所以,
  • 我跟着“Git Hub Clone All Branches At Once”做了建议的git checkout -b upstream origin/upstream,这就是我得到的:

    $ git branch -avv | grep upstream
      upstream                         34e36ed [origin/upstream] added travis-CI ...
      remotes/origin/upstream          34e36ed added travis-CI ...
    

即,本地 upstream 正在跟踪 origin/upstream,而不是 upstream/master,它不再是远程跟踪分支 - 我看不出它如何与 remotes/upstream/master 链接。

如果你只是想快速浏览一下上游分支,可以直接查看:

$ git checkout origin/experimental

但如果您想在该分支上工作,您需要创建一个本地跟踪分支,该分支由以下方式自动完成:

$ git checkout experimental

但是本地的upstream是一样的,还是跟踪origin/upstream,而不是remotes/upstream/master

    $ git branch -avv | grep upstream
      upstream                         34e36ed [origin/upstream] added travis-CI ...
      remotes/origin/upstream          34e36ed added travis-CI ...

因此,帖子顶部的两个问题都与设置上游远程跟踪分支的正确方法密切相关。

【问题讨论】:

    标签: git github git-branch


    【解决方案1】:

    添加上游远程跟踪分支的正确方法是什么?

    没有。

    如何克隆所有远程分支,包括上游分支?

    没有简单的方法。尽管远程跟踪分支被称为分支,但它们并不是真正的分支,它们是一种特殊的引用。 AFAIK git 协议不会公开它们,因此无法拉取或推送它们。

    如果您有 ssh 访问权限以在远程存储库中运行命令,您可以尝试 手动与他们合作。定期运行ssh origin git branch -r;这给了 您是远程存储库中远程跟踪分支的列表。处理列表,查看每个参考点的提交,并在本地存储库中创建指向相同提交的分支。

    【讨论】:

      猜你喜欢
      • 2010-09-09
      • 2015-12-11
      • 2011-07-30
      • 2016-05-02
      • 2011-02-02
      • 2021-10-08
      • 1970-01-01
      • 2011-10-23
      相关资源
      最近更新 更多