最常见的引用也许就是master
了,因为这是Git默认创建的(可以修改,但一般不修改),它始终指向你项目主分支的最后一次提交记录。如果在项目根目录运行cat .git/refs/heads
,会输出一个SHA-1 校验和,例如:
还有一个问题,Git如何知道你当前分支的最后一次的提交ID?在.git
文件夹下有一个HEAD
文件,像这样:
再来说说 Git 的 tag,标签。标签从某种意义上像是一个引用, 它指向一个 commit
对象而不是一个 tree
,包含一个标签,一组数据,一个消息和一个commit
对象的指针。但是区别就是引用随着项目进行它的值在不断向前推进变化,但是标签不会变化——永远指向同一个 commit
,仅仅是提供一个更加友好的名字。