1 git hash-object

曾经讲过Git用Hash值作为Git对象的名字,那么详细是哪个命令呢?

我们能够先改动一个文件:

echo "hongchangfirst" > zhc.conf

然后

git hash-object -w zhc.conf

56166dc42a6a2f694e088694a2a2c90606e28f2d

然后我们能够去上节讲的.git/objects文件夹下,应该有一个名字为56的文件夹。里边会有一个名字为166dc42a6a2f694e088694a2a2c90606e28f2d的文件,我们开打这个文件看看里边是什么东西:

一堆乱码。为什么呢,由于Git用zlib进行了压缩,那么怎么看呢?继续往下看。

2 git cat-file

我们首先看一下56166dc42a6a2f694e088694a2a2c90606e28f2d这个对象是什么?

git cat-file -t 56166dc42a6a2f694e088694a2a2c90606e28f2d

blob

哦,原来是blob对象,上节讲过blob是数据对象,那么我们看看里边的内容呢?

git cat-file -p 56166dc42a6a2f694e088694a2a2c90606e28f2d

hongchangfirst

哦。原来能够这么看。可是zhc.conf在哪存储呢?继续往下看。

3 git update-index

zhc.conf这样的文件名称信息是存储在tree对象里的,而生成tree对象。必须先将blob对象加入到cache中,当中存储item数据块集合。而item数据块是由blob对象Hash值+数据文件名称字(zhc.conf)+文件模式(100644)组成的。

git update-index --add --cacheinfo 100644 56166dc42a6a2f694e088694a2a2c90606e28f2d zhc.conf

假设有多个文件,能够继续将文件对blob对象,文件名称和文件模式写到cache里。

4 git ls-files

查看一下cache种都有哪些文件,

git ls-files

zhc.conf

当全部当数据我们都加入到cache中后,我们就能够生成tree对象了。

5 git write-tree

4e1ba2916b4b903d2e5a2209cdcca7129a891c2f

此时我们能够进入.git/objects/4e/ 查看此tree对象。

git cat-file -t 4e1ba2916b4b903d2e5a2209cdcca7129a891c2f

tree

告诉我们是tree对象,看看里边的内容:

git cat-file -p 4e1ba2916b4b903d2e5a2209cdcca7129a891c2f

100644 blob 56166dc42a6a2f694e088694a2a2c90606e28f2d    zhc.conf

我们看到能够依据tree对象找到对应的blob对象。

原文:http://blog.csdn.net/hongchangfirst/article/details/45333575

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst

深入理解Git (三) - 微命令上篇的更多相关文章

  1. 使用git微命令深入理解git工作机制

    首先.这篇不是真正意义上的翻译,所以大家在看的时候不要找相应的英文文章相应着看.这篇文章之所以归类为翻译.是由于最開始有一篇英文文章让我对git内部机制有了清楚的认识,它能够说是我git的启蒙老师吧. ...

  2. 深入理解git,从研究git目录开始

    转发学习的啦. 似乎很少有人在读某个git快速教程的时候会说:“这个关于git的快速教程太酷了!读完了用起git来超级舒服,并且我一点也不怕自己会破坏什么东西.” 对git的初学者来说,刚接触git时 ...

  3. 理解Git的工作流程(转)

    英文原文:Understanding the Git Workflow 如果你不理解Git的设计动机,那你就会处处碰壁.知道足够多的命令和参数后,你就会强行让Git按你想的来工作,而不是按Git自己的 ...

  4. 理解git经常使用命令原理

    git不同于类似SVN这样的版本号管理系统,尽管熟悉经常使用的操作就能够满足大部分需求,但为了在遇到麻烦时不至于靠蛮力去尝试,了解git的原理还是非常有必要. 文件 通过git管理的文件版本号信息所有 ...

  5. 理解git的分支原理,更好地使用git

    文章内容转载于git-scm. 部分内容涉嫌枯燥 一.git分支概念 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控 ...

  6. 深入理解Git - 一切皆commit

    在对 git 有了基本理解和知道常规操作之后,如何对 git 的使用有进一步的理解? 一切皆 commit 或许是个不错的理解思路. 本文将从『一切皆 commit 』的角度,通过 git 中常见的名 ...

  7. [转发]深入理解git,从研究git目录开始

    转发学习的啦. 似乎很少有人在读某个git快速教程的时候会说:“这个关于git的快速教程太酷了!读完了用起git来超级舒服,并且我一点也不怕自己会破坏什么东西.” 对git的初学者来说,刚接触git时 ...

  8. 全面理解Git

    前言 人生贵知心,定交无暮早. 原文博客地址:Git命令总结 知乎专栏&&简书专题:前端进击者(知乎)  前端进击者(简书) 正文 1.Git简介 Git的诞生确实是一个有趣的故事,我 ...

  9. 深入理解OOP(三):多态和继承(动态绑定和运行时多态)

    在前面的文章中,我们介绍了编译期多态.params关键字.实例化.base关键字等.本节我们来关注另外一种多态:运行时多态, 运行时多态也叫迟绑定. 深入理解OOP(一):多态和继承(初期绑定和编译时 ...

随机推荐

  1. 绘制bitmap 全屏 安卓获取 屏幕大小

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 绘制bitmap 全屏 Rectf rectF = new RectF(0, 0, w, ...

  2. 「TJOI 2018」游园会 Party

    「TJOI 2018」游园会 Party 题目描述 小豆参加了 \(NOI\) 的游园会,会场上每完成一个项目就会获得一个奖章,奖章只会是 \(N, O, I\) 的字样. 在会场上他收集到了 \(K ...

  3. HDU3585 Information Disturbing 树形dp+二分

    http://acm.split.hdu.edu.cn/showproblem.php?pid=3586   题意 : 给定一个带权无向树,要切断所有叶子节点和1号节点(总根)的联系,每次切断边的费用 ...

  4. [CC-STREETTA]The Street

    [CC-STREETTA]The Street 题目大意: 给定两个长度为\(n(n\le10^9)\)的数列\(A\)和\(B\),开始数列\(A\)中每一项值为\(-\infty\),数列\(B\ ...

  5. 高斯消元法求解异或方程组: cojs.tk 539.//BZOJ 1770 牛棚的灯

    高斯消元求解异或方程组: 比较不错的一篇文章:http://blog.sina.com.cn/s/blog_51cea4040100g7hl.html cojs.tk  539. 牛棚的灯 ★★☆   ...

  6. POJ 2186 Popular Cows 强连通分量模板

    题意 强连通分量,找独立的块 强连通分量裸题 #include <cstdio> #include <cstdlib> #include <cstring> #in ...

  7. 微信、小程序开发UI库--weui

    一.weui可以开发微信内网页.微信小程序,二者使用的UI库不一样 1. 微信内网页样式文件为 .css文件  链接地址:https://weui.io/         weui-js库:  weu ...

  8. Cocos2d-x 水果忍者划痕效果

    网上找的一个关于水果忍者划痕的,效果还算凑合.其原理就是基于OpenGL绘制直线,因为版本号过老,此处笔者改动了一些方法,粘贴后可直接使用 适用于Cocos2d-x 2.2.1 .h文件里须要添�的代 ...

  9. Oracle经典查询案例

    1.创建一个学生管理数据库,名称为student 2.最少包括一下三张表 S (SNO,SNAME)学生关系.SNO 为学号,SNAME 为姓名 C (CNO,CNAME,CTEACHER)  课程关 ...

  10. [翻译] POP Facebook的动画开源库

    Pop is an extensible animation engine for iOS and OS X. In addition to basic static animations, it s ...