一,git对象

Git 的核心部分是一个简单的键值对数据库。你可以向该数据库插入任意类型的内容,它会返回一个键值,通过该键值可以在任意时刻再次检索该内容。

向数据库写入内容 并返回对应键值

命令:
echo ‘test content’ | git hash-object -w --stdin

  • -w 选项指示 hash- - object 存储数据对象;若不指定此选项,则该命令仅返回对应的键值,而不会存储数据对像。
  • - -stdin ( standard input ) 选项则指示该命令从标准输入读取内容;若不指定此选项 ,则须在命令尾部给出待存储文件的路径 。
  • git hash- object -w 文件路径: 存文件
  • git hash-object 文件路径
    返回对应文本的键值d670460b4b4aece5915caf5c68d12f560a9fe3e4
  • 返回:
    该命令输出一个长度为 40 个字符的校验和。 这是一个 SHA-1哈希值。

例一:

这里输出的d670460b4b4aece5915caf5c68d12f560a9fe3e4就是内容“test content”对应哈希值(内容对应的唯一标识)。
整个数据库,他会根据你的内容不一样,给你生成不一样的哈希值。
此时,因为没有家-w,所以内容并没有存入数据库:


此时则写入数据库了:


可以看到,已经写入数据库了。

利用cat命令查看写入的内容,却发现是乱码,这是因为写入的东西是经过压缩的,想要读取,还得借助其他命令行:

这样就读取出来了!
于是git对象实际上是key:value组成的键值对(key是hash对应的hash),而且键值对在git内部是一个blob类型。

二, 查看 Git 如何存储数据

命令:
find ./.git/objects - -type f
返回:
./.git/objects/d6/70460b4b4aece5915caf5c68 d12f560a9fe3e4
这就是开始时 Git 存储内容的方式 : 一个文件对应一条内容 。前面两个字符用于命名子目录,余下的 38 个字符则用作文件名。
根据键值拉取数据
命令
git cat-file -p d670460b4b4aece5915caf5c68d12f560a9fe3e4
-p 选项可指示该命令自动判断内容的类型,并为我们显示格式友好的内容。
返回
对应文件的内容

三,还可以对一个文件进行简单的版本控制




git学习笔记-(4-git对象)相关推荐

  1. Git学习笔记:Git简介

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

  2. Git学习笔记 -- 安装git、创建版本库、时光穿梭、远程仓库

    一.Git的安装 在window系统上安装:从https://git-for-windows.github.io下载,然后按默认选项安装即可: 安装完成后,在"桌面"上右击,在弹出 ...

  3. GIT学习笔记(git工具安装与配置)

  4. Git学习笔记使用记录

    文章目录 Git学习笔记 基本 配置环境 Install 初始化workspace Git 全局设置Global Configuration: 配置账户 创建项目仓库Create project re ...

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

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

  6. Git 的安装与初次使用 —— Git 学习笔记 03

    Git 的安装与初次使用 -- Git 学习笔记 03 Git 的安装与初次使用 -- Git 学习笔记 03 安装 Git 在 Linux 上安装 在 Windows 上安装 初次运行 Git 前的 ...

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

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

  8. GIT学习笔记(5):变基

    GIT学习笔记(5):变基rebase 变基 引入变基 在Git中整合来自不同分支的修改主要有两种方法:merge以及rebase. 整合分支最容易的方法是merge,他会把两个分支的最新快照以及两者 ...

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

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

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

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

最新文章

  1. CF1081G Mergesort Strikes Back
  2. Python3 出现'ascii' codec can't encode characters问题
  3. Lesson 12.4 逻辑回归建模实验
  4. reg型变量怎么赋值_UiPath变量的介绍和使用
  5. 反射的基础(二):构造器类的使用
  6. 超图软件 linux gis软件,超图(GIS)软件详细功能介绍.doc
  7. 微信公众号开发相关流程及功能介绍
  8. 用python实现房贷计算器
  9. 路由器运行python脚本_在路由器中运行Python
  10. ES的索引(倒排索引),文档,查询
  11. 最高20天年假,入职即带股票!2021微软校园招聘 | 空中宣讲会倒计时!
  12. 名帖367 邓文原 章草《临皇象急就章》
  13. OpenCV对TBB的支持
  14. 直播平台录播系统架构
  15. 用纯css模拟下雪的效果
  16. Sun ONE 白皮书
  17. 多元线性回归与高斯误差模型的同源关系
  18. 管理学中的知名定律之安慰剂效应(Placebo Effect)
  19. 计算机与测控技术专业就业方向,测控专业就业方向及前景
  20. 介绍几个好用的工具类

热门文章

  1. C++/QT控制通过VISA控制硬件设备,超级容易学会的控制硬件方法
  2. java实现文件上传下载功能_java文件上传下载功能实现代码
  3. iic标准c语言,I2C总线之(三)---以C语言理解IIC
  4. CentOS下常用配置文件和命令以及目录结构备注
  5. Duplex Generative Adversarial Network for Unsupervised Domain Adaptation
  6. oracle10g连接自动断开,报ORA-03135错误
  7. Activiti第三篇【连接、排他网关、指定任务处理人、组任务】
  8. Java文件编码自动转换工具类(只改变编码,不会改变文件内容)
  9. 『电脑技巧』破解Win7/Win8登录密码
  10. 三种GDB类型的转换后字段类型的变化