HEAD 是一个对当前检出记录的符号引用 —— 也就是指向你正在其基础上进行工作的提交记录。
    HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。

    HEAD 通常情况下是指向分支名的(如 bugFix)。在你提交时,改变了 bugFix 的状态,这一变化通过 HEAD 变得可见。

    image.png
    分离的 HEAD 就是让其指向了某个具体的提交记录而不是分支名。在命令执行之前的状态如下所示:
    HEAD -> main -> C1
    HEAD 指向 main, main 指向 C1

    git commit
    git checkout C2
    image.png
    现在变成了
    HEAD->C2
    main->C2

    当然,实际中记录用到的哈希值不是这里写的C1,C2,而是一长串数字和字符串的组合。