企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
## 10.3 Git 引用 引用来帮助记忆最新提交所在的位置,因为 Git 系统的键值为 SHA-1 值。我们需要一个文件来保存 SHA-1 值,并给文件起一个简单的名字,然后用这个名字指针来替代原始的 SHA-1 值。在 Git 中,这样的文件被称为引用(references,或缩写为 refs),储存于`.git/refs`目录。 Git 分支的本质:一个指向某一系列提交之首的指针或引用。 ### 10.3.1 HEAD 引用 HEAD 文件是一个符号引用(symbolic reference),指向目前所在的分支,它是一个指向其他引用的指针。在进行分支切换,生成提交时,HEAD 也会被更新去指向指定的提交。 通过 `symbolic-ref` 可以查看和修改一个引用的值: ``` $ git symbolic-ref HEAD $ git symbolic-ref HEAD refs/heads/test ``` ### 10.3.2 标签引用 标签对象(tag object)非常类似于一个提交对象——它包含一个标签创建者信息、一个日期、一段注释信息,以及一个指针。 主要的区别在于,标签对象通常指向一个提交对象,而不是一个树对象。 它像是一个永不移动的分支引用——永远指向同一个提交对象。 Git 有两种类型的标签,附注标签和轻量标签。轻量标签本质上是一个固定的引用,而附注标签是一个标签对象。 ### 10.3.3 远程引用 远程引用(remote reference)。 如果你添加了一个远程版本库并对其执行过推送操作,Git 会记录下最近一次推送操作时每一个分支所对应的值,并保存在`refs/remotes`目录下。远程引用和分支(位于`refs/heads`目录下的引用)之间最主要的区别在于,远程引用是只读的。