2017-02-14 70 views

回答

3

HEAD是git中的一個特殊術語。它指的是最近在現在的在你現在坐的圖的位置

如果你在一個分支,並在其提示,然後分支小費也被稱爲HEAD

如果您檢出另一個分支,那麼該分支的提示將變爲HEAD

如果您簽出一個隨機提交,它根本不是分支提示,例如,

git checkout HEAD~3 

(其作爲可能不會將你置於一個分離的頭狀態),則該承諾被稱爲HEAD,雖然它不一定與任何一間分行的小費排隊。

1

這是密切相關的GIT中模型本身的一個問題:所有的提交(連同初始提交的除外)具有至少一個親本:

   +--- G 
       + 
A +- B +- C +- D +- H 
    + + 
    +----|--- E 
      | 
      +--- F 

這意味着所有的提交可以被視爲有向非循環圖的節點,其中初始提交是根;這個有向無環圖的葉子是分支尖端。

重新HEAD,從git(1)

命名的指針叫裁判標誌着在歷史上有趣的觀點。一個ref可以包含一個對象的名稱或另一個名稱的 SHA-1。名稱以 開頭的參考ref/head /包含正在開發的分支 的最近提交(或「頭」)的SHA-1名稱。感興趣標籤的SHA-1名稱存儲在ref/tags /下。 A 名爲HEAD的特殊參考文件包含當前檢出分支的名稱。

這個描述並不適用於分離的HEAD場景(因爲分支並沒有真正的名字),但是如果你把這種情況想象成一個匿名分支,它仍然會很好地描述它。

總之,HEAD是一個指向提交(在某種意義上說 - 它通常更準確的想HEAD作爲一個指針指向一個REF,這反過來又指向一個提交),而分支提示指一種特定類型的提交,那些沒有後代的。

相關問題