【问题标题】:Are remote branches locally available?远程分支在本地可用吗?
【发布时间】:2021-06-12 12:10:33
【问题描述】:

这里的 Git 很新。远程分支是什么意思?它们在本地可用(假设没有互联网)?

例如,这里是我所有的分支,我想知道我的本地机器是否具备从我的gh-pages 分支获取信息所需的一切?

$git branch -a

* main
  remotes/origin/gh-pages
  remotes/origin/main

【问题讨论】:

    标签: git git-branch


    【解决方案1】:

    是的,它们在本地可用。

    它们是您上次运行 git fetchgit pull 时远程服务器上内容的本地副本。


    • 如果你想更新远程视图:运行git fetch
      git pull不同,git fetch只会更新这些远程分支,不会尝试更新你自己的本地分支。

    • 如果出于某种原因您想查看远程服务器上存在哪些分支而不下载其内容:使用git ls-remote

    • 无论如何,即使您的远程本地视图已过时,git push 也会在更新任何内容之前确保两个视图一致

    【讨论】:

    • 自上次运行fetchpull 以来,非常重视。我不止一次地发现自己向同事解释说,不,他们在本地没有那个特定的远程分支。此外,在最基本的示例中,您只有一个遥控器,称为origin,并且在拉动时不更改分支的名称,那么您应该能够找到yourBranchorigin/yourBranch在存储库中。一个是您的本地副本,另一个代表您从该分支上的远程检索到的最新信息。
    【解决方案2】:

    在 Git 中大部分时间都需要注意 3 种类型的分支。它们是:

    • 本地分支机构。这包括gh-pages 分支。这些分支保存在本地,您可以在其中进行实际工作。
    • 远程跟踪分支。这包括remotes/origin/gh-pages。这些也是本地分支,但它们主要作为存在于 Git 存储库(例如 Bitbucket 和 GitHub)上的真正远程分支的代理而存在。每当您执行git fetch 时,都会更新这些(本地)远程跟踪分支
    • 远程分支。这包括存在于实际远程 Git 服务器上的 gh-pages 分支。当您对分支执行 git push 或完成将此分支作为目标的拉取请求时,您将更新这个真正的远程分支。

    现在来回答你的问题:

    我想知道我的本地机器是否具备从我的 gh-pages 分支获取信息所需的一切?

    通常,您只需从 gh-pages 分支输入 git status。您得到的响应将告诉您来自远程跟踪分支的前面/后面有多少次提交。上一句中的关键词是“跟踪”,因为您的本地git status 命令不会将您本地的gh-pages 与远程的内容进行比较。相反,它将与 local 远程跟踪分支进行比较。因此,要获得最准确的状态报告,您应该执行以下步骤:

    # from gh-pages
    git fetch
    gig status
    

    您从上面看到的输出将真正告诉您本地分支的位置,以及可能进入远程分支的任何新工作。

    【讨论】:

      【解决方案3】:

      是的,当您克隆存储库时,您会获得远程存储库的完整副本,其中包含所有分支。因此,本地存储库中的 remote 分支通常也称为 remote-tracking 分支。它们本地存储在您的存储库中,但跟踪远程存储库中的分支(使用git fetch 之类的操作)。

      编辑:正如 iBug 在他们的回答中提到的那样,clone 命令有一些标志,它不会创建远程存储库的精确副本,而只会下载其中的一部分,所以如果你使用这些标志,你需要检查)。

      【讨论】:

        【解决方案4】:

        假设您没有在git clonegit pull 或类似命令中添加--depth,那么是的,您的本地存储库包含远程分支的所有内容

        要查看它们,您只需git checkout -b new-branch origin/main。您还可以使用git log origin/main 查看他们指向的提交。

        【讨论】:

          猜你喜欢
          • 2015-10-28
          • 2017-04-19
          • 2018-09-29
          • 2015-10-19
          • 1970-01-01
          • 2020-05-19
          • 2013-04-30
          • 2016-07-08
          • 1970-01-01
          相关资源
          最近更新 更多