在上一篇文章Git学习笔记(1) --- 内部存储模式中,已经说了git的内部存储模式以及.git/objects文件中的内容,这一篇文章主要讲讲git内部的references。

References简介

git 除了会存储提交历史,还会存储当前仓库里有哪些分支,哪些tag,以及他们各自对应的commit id;还有当前的HEAD的指向。而这些都是references的工作。

references的本质是:用于存储指向特定commit的指针。主要包括以下几个内容:

  1. tags:存放所有的tag文件
  2. branches:存放所有的brach文件
  3. HEAD: 存储当前操作的commit指向

References内容

braches文件夹会存储当前仓库所有的分支,并为每一个分支创建一个单独的文件,分支名就是文件名,如上图,当前仓库就只有一个master分支。

那master文件里面存储的是什么呢?

从上图可以看出,master分支当前的最新的提交是adf0e13,所以master文件存储的就是最新提交的commit id。另外,此时HEAD指针是直接指向master,和master对应的是同一个commit,所以此时HEAD文件内容就是:

如果HEAD指向commit和其他的分支最新提交是一致的,那么HEAD文件的内容就和上图类似,不同就是分支名;如果HEAD是指向其他的commit,与所有的分支指向的都不一致时(例如checkout到之前的提交),此时HEAD文件直接储存所指向的commit id,与master文件类似。

此外,tags文件的存储模式与braches的存储模式一致,因此不再赘述。

如果对本文有什么意见和建议,欢迎讨论和指正!!!

Git学习笔记(2) --- References探寻相关推荐

  1. Git 学习笔记:5 分布式工作流程

    Git 学习笔记:5 分布式工作流程 分布式工作流程 集中式工作流 集成管理员工作流 司令官与副官工作流 工作流程总结 向一个项目贡献 提交准则 私有小型团队 John's Machine 私有管理团 ...

  2. ​​​​​​​Git学习笔记与IntelliJ IDEA整合

    2019独角兽企业重金招聘Python工程师标准>>> Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:htt ...

  3. Git 学习笔记:自定义Git(完)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  4. Git学习笔记:标签管理以及GItHub

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  5. Git学习笔记:分支管理3

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  6. Git学习笔记:分支管理(2)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  7. Git学习笔记:分支管理(1)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  8. Git学习笔记:远程仓库

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  9. Git学习笔记:修改

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

最新文章

  1. python文本操作
  2. jQuery-Easyui 1.2 实现多层菜单
  3. neo4j CQL语句
  4. 第 8 章 配置listener监听器
  5. Go编译exe可执行文件去掉运行时的CMD窗口
  6. Android精讲--界面编程2(布局管理器)
  7. 今天来总结一下CSS中有哪些定位
  8. mac下,vagrant桥接,选择“en0: 以太网”无法启动虚拟机解决方案
  9. 2021中兴捧月神算师算法赛,4-24第一场,第一题:A - 跳高,2021-4-27
  10. 扑克牌斗牛游戏的概率问题
  11. hdu 4565(推公式、矩阵快速幂)
  12. 左岸语不惊人死不休系列摘录
  13. Learning Shape Representations for Clothing Variations in Person Re-Identification
  14. Linux for h4100 - installing Linux to the ipaq h4150 (老树出新芽)
  15. C++ 什么是多态,多态的用途
  16. 计算机窗口中如何移动文件,简单介绍一下电脑中的文件或文件夹的复制、移动及删除的操作方式...
  17. Mysql的MMM高可用群集
  18. C语言实现拉格朗日插值法
  19. python相册排版_微信小程序实现首页图片多种排版布局!
  20. 开抢| 华为开发者大会2021(Cloud)早鸟票来了!

热门文章

  1. poj1986 Distance Queries(lca又是一道模版题)
  2. hdoj 1004 学习思路
  3. DOM 节点的创建、删除、替换
  4. 利用Frame Animation实现动画效果,代码正确,就是达不到变换效果
  5. (转)asp.net2.0 上传大容量文件第三方控件radupload
  6. redis 分布式锁 看门狗_分布式锁Redisson的使用,看门狗机制
  7. java 多线程两种方式_JAVA多线程实现的两种方式
  8. e5cc温控仪通讯参数设定_产品介绍||DeltaWiFi通讯型多功能电表DPMC520W
  9. vue怎么让接口带上cookie_在Vue中如何使用Cookie操作实例
  10. myeclipse2019左侧工程目录字体的大小调整