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算法的值

最新文章

  1. maven配置httpclient3.X jar包
  2. JSON 之 SuperObject(8): 关于乱码的几种情况 - 向 Henri Gourvest 大师报告
  3. LeetCode题解——String to Integer(atoi)
  4. c#安全性、稳定性、高性能需要注重的点
  5. Android学习【Android内核编译流程和错误笔记】
  6. 生成ssl证书文件
  7. 通过innerHTML简化脚本
  8. iOS开发——UIImageView
  9. MySQL数据库开发规范知识点
  10. MappedByteBuffer
  11. ORACLE not available
  12. node安装express-generator脚手架
  13. solr 学习笔记(一)--搜索引擎简介
  14. JavaScript、ES5、ES6的区别
  15. php + crontab 执行定时任务
  16. acceleration
  17. 解决数据库自增ID的问题
  18. BZOJ 2668: [cqoi2012]交换棋子
  19. [翻译] JFDepthView 给view提供3D景深
  20. Myeclipse下使用Maven搭建spring boot项目(第二篇)

热门文章

  1. mybatis的sqlprovider用法扩展自定义sql
  2. 异步编程与scrapy
  3. HashCode方法整理
  4. Opengl 之 窗口初体验 ------ By YDD的铁皮锅
  5. vbox出现Failed to opencreate the internal network错误,无法启动虚拟机
  6. shell编程:命令替换的运用
  7. 一道简单的面试题,难倒各大 Java 高手!
  8. Python列表推导式中使用if-else
  9. python面试题之docstring是什么?
  10. Linux的各个发行版本(一)