Git 中 HEAD 是什麼東西,為什麼會出現在分支裡?
高洛峰
高洛峰 2017-04-28 09:04:18
0
6
953

如題,但是這個分支其實又是不存在的。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(6)
仅有的幸福

說簡單一點,HEAD 就是當前活躍分支的遊標。形象的記憶就是:你現在在哪裡,HEAD 就指向哪兒,所以 Git 才知道你在那兒!

不過 HEAD 並非只能指向分支的最頂端(時間節點距今最近的那個),實際上它可以指向任何一個節點,它就是 Git 內部用來追蹤目前位置的東東。

我回答的不嚴謹,只是為了簡要的讓你知道個大概,更具體的去看看官方的手冊吧。

淡淡烟草味

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,總是大寫

洪涛

概念上就是@nightire 所說的了, 至於HEAD出現在分支列裡,可以理解為桌面上創建一個快捷方式指向QQ圖標的快捷方式,看起來和QQ圖標是是兩個東西,其實指向的都是安裝目錄下的qq.exe。

我想大声告诉你

學習 GIT 推薦 廖雪峰老師的GIT教學

摘抄其中的一段:

HEAD嚴格來說不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是當前分支。

我想大声告诉你

樓上都說了,我加一句 HEAD 就是你目前的工作目錄所處的位置,可以用 checkout 指令改變 HEAD 指向的位置。注意 HEAD 不一定是指向一個分支,也可以指向一個 commit

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板