git学习笔记-(4-git对象)
一,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对象)相关推荐
- Git学习笔记:Git简介
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 目 ...
- Git学习笔记 -- 安装git、创建版本库、时光穿梭、远程仓库
一.Git的安装 在window系统上安装:从https://git-for-windows.github.io下载,然后按默认选项安装即可: 安装完成后,在"桌面"上右击,在弹出 ...
- GIT学习笔记(git工具安装与配置)
- Git学习笔记使用记录
文章目录 Git学习笔记 基本 配置环境 Install 初始化workspace Git 全局设置Global Configuration: 配置账户 创建项目仓库Create project re ...
- Git学习笔记:分支管理(1)
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Git 的安装与初次使用 —— Git 学习笔记 03
Git 的安装与初次使用 -- Git 学习笔记 03 Git 的安装与初次使用 -- Git 学习笔记 03 安装 Git 在 Linux 上安装 在 Windows 上安装 初次运行 Git 前的 ...
- Git 学习笔记:5 分布式工作流程
Git 学习笔记:5 分布式工作流程 分布式工作流程 集中式工作流 集成管理员工作流 司令官与副官工作流 工作流程总结 向一个项目贡献 提交准则 私有小型团队 John's Machine 私有管理团 ...
- GIT学习笔记(5):变基
GIT学习笔记(5):变基rebase 变基 引入变基 在Git中整合来自不同分支的修改主要有两种方法:merge以及rebase. 整合分支最容易的方法是merge,他会把两个分支的最新快照以及两者 ...
- Git学习笔记与IntelliJ IDEA整合
2019独角兽企业重金招聘Python工程师标准>>> Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:htt ...
- Git 学习笔记:自定义Git(完)
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
最新文章
- CF1081G Mergesort Strikes Back
- Python3 出现'ascii' codec can't encode characters问题
- Lesson 12.4 逻辑回归建模实验
- reg型变量怎么赋值_UiPath变量的介绍和使用
- 反射的基础(二):构造器类的使用
- 超图软件 linux gis软件,超图(GIS)软件详细功能介绍.doc
- 微信公众号开发相关流程及功能介绍
- 用python实现房贷计算器
- 路由器运行python脚本_在路由器中运行Python
- ES的索引(倒排索引),文档,查询
- 最高20天年假,入职即带股票!2021微软校园招聘 | 空中宣讲会倒计时!
- 名帖367 邓文原 章草《临皇象急就章》
- OpenCV对TBB的支持
- 直播平台录播系统架构
- 用纯css模拟下雪的效果
- Sun ONE 白皮书
- 多元线性回归与高斯误差模型的同源关系
- 管理学中的知名定律之安慰剂效应(Placebo Effect)
- 计算机与测控技术专业就业方向,测控专业就业方向及前景
- 介绍几个好用的工具类
热门文章
- C++/QT控制通过VISA控制硬件设备,超级容易学会的控制硬件方法
- java实现文件上传下载功能_java文件上传下载功能实现代码
- iic标准c语言,I2C总线之(三)---以C语言理解IIC
- CentOS下常用配置文件和命令以及目录结构备注
- Duplex Generative Adversarial Network for Unsupervised Domain Adaptation
- oracle10g连接自动断开,报ORA-03135错误
- Activiti第三篇【连接、排他网关、指定任务处理人、组任务】
- Java文件编码自动转换工具类(只改变编码,不会改变文件内容)
- 『电脑技巧』破解Win7/Win8登录密码
- 三种GDB类型的转换后字段类型的变化