pok*_*oke 175
HEAD是对当前签出分支中最后一次提交的引用.
这有一个小例外,它是独立的HEAD.一个分离的头是你,只要你签出在结束了的情况提交(或标签),而不是一个分支.在这种情况下,你必须把它想象成一个没有名字的临时分支 ; 所以我们只有 HEAD 而不是命名分支引用.它仍然允许你进行提交(这会更新HEAD),所以如果你把一个分离的HEAD想象成一个没有名字的临时分支,那么上面的简短定义仍然是正确的.
Cas*_*bel 85
HEAD
是当前检出的提交的引用(引用).
在正常状态下,它实际上是您已检出的分支的符号引用 - 如果您查看.git/HEAD的内容,您将看到类似"ref:refs/heads/master"的内容.分支本身是对分支顶端的提交的引用.因此,在正常状态下,HEAD
有效地指当前分支的尖端处的提交.
它也可能有一个"独立的头部".当您检查除(本地)分支之外的某些内容(如远程分支,特定提交或标记)时会发生这种情况.最常见的地方是在交互式rebase期间,当您选择编辑提交时.在分离的HEAD状态下,您的HEAD是对提交的直接引用 - .git/HEAD的内容将是SHA1哈希.
一般来说,HEAD只是一个方便的名称,意思是"你已经检查了什么",你真的不必担心它.只要知道你检查了什么,并记住你可能不想提交,如果你不在分支(独立的HEAD状态),除非你知道你在做什么(例如在交互式rebase中) .
Suh*_*pta 14
Git维护一个名为HEAD的引用变量.我们将此变量称为指针,因为它的目的是引用或指向存储库中的特定提交.当我们进行新的提交时,指针将改变或移动以指向新的提交.HEAD始终指向我们存储库中当前分支的尖端.现在,这与我们的存储库有关,而不是我们的暂存索引或我们的工作目录.
想到它的另一种方式是我们的存储库的最后状态或最后检出的内容,并且因为它是存储库停止或最后状态的位置,您还可以说HEAD指向下一个提交的父级或它的提交写作的地方.
我认为考虑这个问题的一个好比喻是盒式磁带录音机上的播放和录音.当我们开始录制音频时,磁带移过磁头,并将其记录到磁带上.当我们按下Stop时,记录头停止的地方就是当我们再次按下Record时它会再次开始记录的地方.现在我们可以四处移动,我们可以将头部移动到不同的地方,但无论头部位于何处当我们再次点击Record时,它将开始录制.
Git中的HEAD指针非常相似,它指向我们接下来要开始录制的地方.这是我们在我们的存储库中为我们所承诺的事情而离开的地方.
Hon*_*ney 14
这应该是一个评论,但它对于提交来说太长了
我一直认为HEAD~5
以前的意思是GO to 5.它不带有命令的GO部分.它只携带命令的参考/'where to' 部分.
在外行人而言它用来回答的问题:在哪里我应该去?提交哪个?
如果你说
HEAD
它表示(引用)当前提交
HEAD~1
意味着(引用)1之前提交
HEAD~
意味着(参考)87提交之前
HEAD~87
实际上将转到该引用/提交
归档时间: |
|
查看次数: |
80879 次 |
最近记录: |