如题,但是这个分支实际上又是不存在的。
转载 http://stackoverflow.com/questions/2304087/what-is-head-in-git 上的回答 翻译有误请轻轻吐槽
你可以认为 HEAD(大写)是"current branch"(当下的分支)。当你用git checkout切换分支的时候,HEAD 修订版本重新指向新的分支。有的时候HEAD会指向一个没有分支名字的修订版本,这种情况叫”detached HEAD“
head(小写)是commit对象的引用,每个head都有一个名字(分支名字或者标签名字等等),但是默认情况下,每个叫master的repository都会有一个head, 一个repository可以包含任意数量的head。在任何时候,只要这个head被选择成为”current head“,那么这个head就成了HEAD,总是大写
学习 GIT 推荐 廖雪峰老师的GIT教程
摘抄其中的一段:
HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
楼上都说了,我加一句 HEAD 就是你当前的工作目录所处的位置,可以用 checkout 命令改变 HEAD 指向的位置。注意 HEAD 不一定指向一个分支,也可以指向一个 commit
3 回答2.6k 阅读
1 回答1.3k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
3 回答1.7k 阅读
2 回答1.1k 阅读
1 回答1.1k 阅读
2 回答873 阅读
说简单一点,HEAD 就是当前活跃分支的游标。形象的记忆就是:你现在在哪儿,HEAD 就指向哪儿,所以 Git 才知道你在那儿!
不过 HEAD 并非只能指向分支的最顶端(时间节点距今最近的那个),实际上它可以指向任何一个节点,它就是 Git 内部用来追踪当前位置的东东。
我回答的不严谨,只是为了简要的让你知道个大概,更具体的去看看官方的手册吧。