1.前言

Git版本管理的内容,是一系列由40bytes SHA-1字符串所代表patch,而Git References,则是对这些字符串的引用(也可以理解为别名)。为什么需要别名呢?因为这些字符串太难记了!根据使用场景的不同,Git References分为四类:

2.git references

2.1 指向最后一次提交的reference(分支名)

这类reference以“refs/heads/”为前缀,例如“refs/heads/master”,实际就是git分支,git分支指向某一个commit。正因为此,各种分支名的全称应该是(省略refs字段):

heads/master 
heads/bX 
heads/bY

不过由于Git默认分支类reference的前缀是“refs/heads/”,因此平时操作分支的时候,可以把“heads”省去。

2.2 指向当前分支的reference(HEAD 标记)

这个reference比较特别,它没有指向某一个SHA-1字符串,而是指向当前正在工作的分支名,如指向refs/heads/master

因此,HEAD标记就是当前分支的标记,具体可以参考2.1小节的介绍。

2.3 指向某一个tag的reference

这类reference以“refs/tags/”为前缀,指向git仓库某一个tag。

有关git tag的知识,后面用到的时候再介绍。

2.4 指向远端仓库最后一次提交的reference(远端分支)

这类reference以“refs/remotes/”为前缀,指向远端仓库某个SHA-1字符串的标记(也即远端分支),其格式为:

refs/remotes/远端仓库名(如origin)/远端分支reference名(如master)

因此,平时我们操作远端分支的时候,所操作的分支名为(以远端master分支为例):

remotes/origin/master

其实就是省略掉refs字段的reference名称。

总结:知道了这4类reference的含义,以及命名方式之后,我们对各类git名称,会有更深刻的理解。

补充:一些Git保留使用的特殊refs:

    • HEAD,指向当前本地分支的当前commit状态
    • FETCH_HEAD,指向当前本地分支在最近一次fetch操作时得到的commit状态
    • ORIG_HEAD,指向任何merge或rebase之前的刚刚检出时的commit状态

最新文章

  1. Python Day17
  2. VS2010下安装Cocos2dx完整教程(原)
  3. A Brief History of Scaling LinkedIn
  4. 5分钟让你学会用最高效的工具解析所有Json
  5. EF框架搭建小总结--CodeFirst模型优先
  6. Redis的五种数据类型及方法
  7. 学习dos命令行总结
  8. Spring Boot 整合Quartz定时器
  9. MongoDB的常用命令和增查改删
  10. 进制与进制转换DAY2
  11. MongoDB学习目录
  12. Java中的Lock接口
  13. java有车有房有能力最基本运用
  14. Python学习系列之(一)---Python的安装
  15. Linux系统的组成
  16. ISD9160学习笔记05_ISD9160语音识别代码分析
  17. jQuery的init都做了些什么
  18. OAuth : open Authorization 开发授权
  19. python 连加
  20. maven 依赖和坐标

热门文章

  1. Neutron:浮动ip
  2. Python操作Excel 之 openpyxl
  3. Make a Person 闭包
  4. spring事物与传播行为
  5. Oracle左连接、右连接、全外连接、(+)号作用
  6. 简单的连接数据库的java程序模板
  7. time、datetime、calendar
  8. 我的python之路
  9. 用video标签流式加载
  10. shell脚本备份日志文件