HEAD指针
“通常情况下”HEAD指针指向最新分支,而最新分支又指向该分支的最新一次提交。当HEAD指针直接指向了某次提交,那么这个HEAD指针就被称为detached HEAD。
如何实现HEAD指针与分支的分离?
随便检出某个提交。git checkout 哈希值。
“分离头”有什么用呢?
在这种状态下可以做一些实验性的操作(make experimental changes),若修改满意,可以新建一个分支来保存(当前其实是匿名分支),命令为git checkout -b 分支名,或者git branch 分支名 某次提交的哈希值,否则丢弃,做法是直接切换到一个分支(git checkout 分支名)。这样可以避免因为不满意实验而删除分支。