首页 > Git 中 HEAD 是什么东西,为什么会出现在分支里?

Git 中 HEAD 是什么东西,为什么会出现在分支里?

如题,但是这个分支实际上又是不存在的。


学习 GIT 推荐 廖雪峰老师的GIT教程

摘抄其中的一段:

HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。


说简单一点,HEAD 就是当前活跃分支的游标。形象的记忆就是:你现在在哪儿,HEAD 就指向哪儿,所以 Git 才知道你在那儿!

不过 HEAD 并非只能指向分支的最顶端(时间节点距今最近的那个),实际上它可以指向任何一个节点,它就是 Git 内部用来追踪当前位置的东东。

我回答的不严谨,只是为了简要的让你知道个大概,更具体的去看看官方的手册吧。


概念上就是@nightire 所说的了, 至于HEAD出现在分支列里,可以理解为桌面上创建一个快捷方式指向QQ图标的快捷方式,看起来和QQ图标是是两个东西,其实指向的都是安装目录下的qq.exe。


楼上都说了,我加一句 HEAD 就是你当前的工作目录所处的位置,可以用 checkout 命令改变 HEAD 指向的位置。注意 HEAD 不一定指向一个分支,也可以指向一个 commit


current指针


转载 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,总是大写

【热门文章】
【热门文章】