当你运行git branch -r
命令时,为什么会列出origin/HEAD
呢?例如,在GitHub上有一个远程仓库,其中包含两个分支:master和awesome-feature。如果我使用git clone
命令将其复制到本地并进入新目录并列出分支,我会看到以下内容:
$ git branch -r
origin/HEAD
origin/master
origin/awesome-feature
无论按什么顺序排列(按字母排序?我在模拟这个示例以保护一个无辜的存储库的身份)。那么什么是HEAD
呢?它是上一个进行push
操作时其HEAD
所指向的位置吗?那不会永远是他们进行push
操作时所指向的位置吗?HEAD
会移动……我为什么要关心其他计算机上的某个人的HEAD
指向了什么?
我正在掌握远程跟踪等知识,因此这是一个持续存在的困惑。谢谢!
编辑:我曾认为专用的远程存储库(比如GitHub,在那里没有人会ssh登录并在该代码上工作,而只会拉取或推送等)没有且不应该有HEAD
,因为基本上没有工作副本。这种说法对吗?