git分布式版本控制系统权威指南学习笔记(三):简单了解git对象、head以及sha1sum
git对象(简单了解)
每次提交都有tree、parent、author、committer
➜ demo git:(master) ✗ git log --pretty=raw --graph 50bceb7c6f5
* commit 50bceb7c6f598c258a1502f25f7bc08220635aea
| tree 9d1cf4f29cf360391811eb69f8eeb6859a029c11
| parent 81b09ecc5f2f0222ede2b474efb1d8da9b04714e
| author dataiyangu <32248827@qq.com> 1552315059 +0800
| committer dataiyangu <32248827@qq.com> 1552315059 +0800
|
| a
|
* commit 81b09ecc5f2f0222ede2b474efb1d8da9b04714e
| tree 86761909e740889c54721914f2e942218982991f
| parent 1e20fe7563a4b4bf8a091fe6c55ca9f32786224c
| author dataiyangu <32248827@qq.com> 1552277904 +0800
| committer dataiyangu <32248827@qq.com> 1552277904 +0800
|
| add
|
* commit 1e20fe7563a4b4bf8a091fe6c55ca9f32786224c
| tree 529ca55c0571956f6e1b1290a77675ba72a64938
| parent ed97a5e3d4ae753183e6a796625dfca1f83c1f61
| author dataiyangu <32248827@qq.com> 1552277753 +0800
| committer dataiyangu <32248827@qq.com> 1552277753 +0800
|
| a
–pretty=raw没有加任何加工的,原先是什么就是什么,参数还可以指定为oneline、short、full、fuller、emial、raw、farmat等
–graph 50bceb7c6f5展现对象之间的关系
左边的竖线表示这里是一个链表的关系,通过parent来连接,可以看到上面代码中第一个parent的号就是第二个的commit号,最早的那次提交是没有parent的,这也就是为什么git切换分支特别快。
tree类似于目录a文件夹下有b和c,c下有d和e,a和c都是tree,有点递归的感觉。
对象是存在哪里的?
就是存在版本库的objects目录中,通过hash值前两位作为文件夹,后几位作为具体的对象名
head和master分支
head就是一个类似指针的概念,指向master,head就是master,指向dev,head就是dev,就是git branch前面的*号
简而言之head就是当前分支,当前分支是哪个分支,head就指向哪个分支。
➜ demo git:(master) ✗ git branch
b
* master
上面的hash值怎么来的?
sha1sum(这个算法能得到全球唯一的一个值)
例如:
➜ demo git:(master) ✗ printf git | sha1sum
输出git的sha1sum算法的值
git分布式版本控制系统权威指南学习笔记(三):简单了解git对象、head以及sha1sum的更多相关文章
- git分布式版本控制系统权威指南学习笔记(六):git reset、get stash、git checkout总结
文章目录 1. 概述 2. 如何把修改暂存起来,留着以后使用? 2.1 使用场景 2.2 git stash 暂存进度 2.3 查看进度 2.4 恢复进度 3. 如何撤销工作区的修改? 4. 如何把暂 ...
- git分布式版本控制系统权威指南学习笔记(一):配置文件、简单流程和小问题
文章目录 git配置文件简介 git config各种命令 配置级别: 用户信息 文本编辑器 差异分析工具 配置命令别名 公钥 git协同流程 简单流程 初始化版本库 提交至缓存区 查看状态 提交分支 ...
- git分布式版本控制系统权威指南学习笔记(四):git reset
文章目录 git reset目录树重写 git reset 重置 git reset目录树重写 git reset --soft 暂存区工作区不变 git reset --hard git reset ...
- git分布式版本控制系统权威指南学习笔记(二):git add暂存区的三个状态以及暂存区的理解
文章目录 不经过git add(到暂存区),能直接进行commit吗? 举个
- git分布式版本控制系统权威指南学习笔记(五):git checkout
文章目录 分离头指针 通过cat可以查看当前的分支 通过branch查看当前分支 checkout commitId(真正的
- Hadoop权威指南学习笔记三
HDFS简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考.有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my ...
- Git权威指南学习笔记(二)Git暂存区
例如以下图所看到的: 左側为工作区,是我们的工作文件夹. 右側为版本号库,当中: index标记的是暂存区(stage),所处文件夹为.git/index,记录了文件的状态和变更信息. master标 ...
- netty权威指南学习笔记三——TCP粘包/拆包之粘包现象
TCP是个流协议,流没有一定界限.TCP底层不了解业务,他会根据TCP缓冲区的实际情况进行包划分,在业务上,一个业务完整的包,可能会被TCP底层拆分为多个包进行发送,也可能多个小包组合成一个大的数据包 ...
- IDA Pro 权威指南学习笔记(三) - IDA 桌面简介
IDA 的默认桌面如下图 工具栏区域(1)包含与 IDA 的常用操作对应的工具,可以使用 View -> Toolbar 显示或隐藏工具栏 可以使用 View -> Toolbars -& ...
随机推荐
- SqlSession(SqlSessionTemplate类) 实现Mybatis
yBatis3与spring整合之使用SqlSession(SqlSessionDaoTemplate类) ---------- 注:这是手工编写实现的方式(其实可以直接使用注入映射器的) SqlSe ...
- windows下tomcat7+nginx1.8负载均衡
1.负载平衡是一种常用的跨多个应用程序实例 技术优化资源利用率,最大化吞吐量, 减少延迟,并确保容错配置. 2.使用nginx作为非常有效的HTTP负载均衡器 将流量分发给几个应用程序服务器和改善 性 ...
- php开发面试题---php 对swoole的理解
php开发面试题---php 对swoole的理解 一.总结 一句话总结: 以战养学,实例驱动 swoole是披着PHP外衣的C程序:其实就是c.java那些语言里面的高阶功能:比如 持久连接.异步通 ...
- D3DPT_TRIANGLESTRIP 与 D3DPT_TRIANGLEFAN 的区别
D3DPT_TRIANGLESTRIP D3DPT_TRIANGLEFAN http://community.fortunecity.ws/skyscraper/sun/575/Programs/D3 ...
- 02 java语言基础
常量:字面值常量(字符串,字符,整数,小数,布尔,null),自定义常量,''这个不是字符常量,""这个是字符串常量 进制: 02.01_Java语言基础(常量的概述和使用) A: ...
- linux less preserve colors
less -r grep pattern file.txt --color=always | less -r
- Centos7使用Python3
1.安装python3替换python2.7 [root@Python src]# wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4. ...
- PHP中global与$GLOBALS的区别
单一个global是一个关键字,通常附加在变量前,用于将变量声明至全局作用域: $GLOBALS是预定义的超全局变量,把变量扔到里边的话一样可以带到全局去. $GLOBALS 是一个关联数组,每一个变 ...
- Neo4j基础入门
图数据库基础知识 图数据库以图这种数据结构为基础,可以保存任意种类的数据,以下图为基础,简单介绍Neo4j中的几个简单概念: 1.节点(Nodes) 表示图数据库的实体(entities),代表图数据 ...
- 2018APIO 进京赶考
先见识了一下CTSC的操作...涨了见识... 打铁匠x1 见识了个全英文的ppt,各种讲课其实真的讲的很好,只是逻辑性太强反而让完全不会的同学有些尴尬... linux真的令人窒息...GUIDE用 ...