2017-02-14 73 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,这反过来又指向一个提交),而分支提示指一种特定类型的提交,那些没有后代的。

相关问题