git - 为什么运行 "origin/HEAD"时显示 "git branch -r"?

标签 git version-control github

当你运行 git branch -r 时,为什么它会列出 origin/HEAD?例如,GitHub 上有一个远程仓库,有两个分支:master 和 awesome-feature。如果我执行 git clone 来获取它,然后进入我的新目录并列出分支,我会看到:

$ git branch -r
origin/HEAD
origin/master
origin/awesome-feature

或者它的顺序是什么(alpha?我伪造这个例子是为了保密一个无辜的 repo 协议(protocol)的身份)。那么 HEAD 业务是什么?这是最后一个 push 的人在推送时将他们的 HEAD 指向什么吗?这不会总是他们 push 编辑的内容吗? HEAD 会四处移动……我为什么要关心某人的 HEAD 在另一台机器上指向的是什么?

我刚刚掌握了远程跟踪等方面的知识,所以这是一个挥之不去的困惑。谢谢!

编辑:我的印象是专用的远程仓库(比如 GitHub,没有人会通过 ssh 进入并处理该代码,而只是 pull 或推等)没有也不应该有 HEAD,因为有,基本上,没有工作副本。不是吗?

最佳答案

@robinst 是正确的。

在 git 中,您可以选择默认 checkout 哪个分支(即当您克隆时)。默认情况下,origin/HEAD 将指向它。

在 GitHub 上,You can change this在您的 GitHub 存储库的管理设置中。您也可以通过命令行从

git remote set-head origin trunk

或者完全删除它

git remote set-head origin -d

Example .查看“切换分支”下 pull 菜单。 trunk 被选中,所以 origin/HEAD 跟在 trunk 之后。

关于git - 为什么运行 "origin/HEAD"时显示 "git branch -r"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/354312/

相关文章:

asp.net - 用于 asp.net 开发的 Git/SVN 而不是 VSS?

java - git克隆在java中不起作用

git - 如何在 Git Tower 中获取 Git Commit 消息?

git cherry-pick -x 默认值

git - 错误 : failed to push some refs to new repository

python - 使用 Rietveld Code Review Tool 进行代码审查

github - 通过 ansible playbook 从 git 克隆特定分支

Git别名附加参数结束

git - 根据特定条件自动拒绝提交

version-control - 是否有一种简单的方法可以还原整个 P4 更改列表?