代码之家  ›  专栏  ›  技术社区  ›  Nukesub

Git本地和远程头之间的差异

git
  •  2
  • Nukesub  · 技术社区  · 4 年前

    我一直在用git阅读和练习。我有一个关于指针的问题 HEAD . 我知道这是一个指向当前分支的特殊指针,但如果我这样做 git branch --all ,我所看到的是:

    * Test_Branch_1
      main
      remotes/origin/HEAD -> origin/main
      remotes/origin/Test_Branch_1
      remotes/origin/main
    

    这是有道理的。我可以看到我的遥控器 main 分支机构和 头部 指着它。但我也看到了 * 旁边 Test_Branch_1 这似乎表明 头部 也被指向 测试分支1 ? 如果我在 测试分支1 通过这样做 git log -1 我看到的是:

    commit checksum (HEAD -> Test_Branch_1)
    Merge: ...
    Author: ...
    Date: ...
    

    再一次 头部 似乎指向 测试分支1 . 似乎有一个本地和远程版本 头部 ? 本地的那个跟踪我在本地的哪个分支机构?在这种情况下,本地版本的 测试分支1 ? 和远程版本 头部 在实践中从不改变(即始终指向 主要的 )?

    这是正确的还是我误解了这一点?

    1 回复  |  直到 4 年前
        1
  •  2
  •   Orace    4 年前

    你的解释是正确的。

    remotes/origin/HEAD 是一个 地方的 远程分支的别名。
    它指向您想要作为默认分支的对象 origin 允许您使用 起源 而不是(例如) origin/main 只要有意义。
    您可以使用设置/删除它 git remote set-head origin main / git remote set-head -d origin
    同样,这对远程存储库没有影响,也不会与您的团队成员共享。

    作为旁注,因为您可以有多个 起源 ,可以有多个 remotes/.../HEAD .

    有关更多信息,请查看 git remote set-head