最常见的引用也许就是master了,因为这是Git默认创建的(可以修改,但一般不修改),它始终指向你项目主分支的最后一次提交记录。如果在项目根目录运行cat .git/refs/heads,会输出一个SHA-1 校验和,例如:

    还有一个问题,Git如何知道你当前分支的最后一次的提交ID?在.git文件夹下有一个HEAD文件,像这样:

      再来说说 Git 的 tag,标签。标签从某种意义上像是一个引用, 它指向一个 commit 对象而不是一个 tree,包含一个标签,一组数据,一个消息和一个commit 对象的指针。但是区别就是引用随着项目进行它的值在不断向前推进变化,但是标签不会变化——永远指向同一个 commit,仅仅是提供一个更加友好的名字。