【发布时间】:2021-03-07 17:15:32
【问题描述】:
$ git branch -a
* main
remotes/origin/HEAD -> origin/main
remotes/origin/main
它们有什么区别:
-
remotes/origin/HEAD -
origin/main -
remotes/origin/main
【问题讨论】:
标签: git git-branch git-remote
$ git branch -a
* main
remotes/origin/HEAD -> origin/main
remotes/origin/main
它们有什么区别:
remotes/origin/HEAD
origin/main
remotes/origin/main
【问题讨论】:
标签: git git-branch git-remote
remotes/origin/HEAD 是当前在originrepository 中签出的分支,这意味着如果您克隆该存储库,默认情况下将首先签出该分支。
origin/main 是一个远程分支(它是名为main 的远程分支上名为origin 的分支的本地副本)
remotes/origin/main,通常称为origin/main,是您上次执行 git 命令时名为origin 的远程 上名为main 的分支的位置。如果它们是相关的,main 会将origin/main 作为其上游。
【讨论】:
remotes/origin/HEAD 是当前在origin 存储库中签出的分支" 不完全正确。远程存储库几乎总是一个裸存储库,并且没有任何签出分支。 :-)
origin/main 是一个远程分支" 它被称为远程-tracking 分支,它实际上根本不是一个分支——它是一个特殊的分支参考类型;它由 fetch/pull/push 移动,无法提交。
remotes/origin/main 和 origin/main 是同义词;一个只是较短的另一个的全名。你不需要关于它们的 2 个不同的段落。 :-)