Git/Github GitBash 2.2 .git.objects

$ mkdir c
$ cd c
$ git init

//首次提交。

$ vim 1.txt
$ ls -alh .git/objects/
total 4.0K
drwxr-xr-x 1 desktop 197121 0 八月  8 17:00 ./
drwxr-xr-x 1 desktop 197121 0 八月  8 17:00 ../
drwxr-xr-x 1 desktop 197121 0 八月  8 17:00 info/
drwxr-xr-x 1 desktop 197121 0 八月  8 17:00 pack/
$ git add 1.txt
$ git commit -m ‘.‘
$ ls -alh .git/objects/
total 4.0K
drwxr-xr-x 1 desktop 197121 0 八月  8 17:01 ./
drwxr-xr-x 1 desktop 197121 0 八月  8 17:01 ../
drwxr-xr-x 1 desktop 197121 0 八月  8 17:01 38/
drwxr-xr-x 1 desktop 197121 0 八月  8 17:01 81/
drwxr-xr-x 1 desktop 197121 0 八月  8 17:01 d0/
drwxr-xr-x 1 desktop 197121 0 八月  8 17:00 info/
drwxr-xr-x 1 desktop 197121 0 八月  8 17:00 pack/
$ find .git/objects/ -type f
.git/objects/38/fd29697b220f7e4ca15b044c3222eefe5afdc1
.git/objects/81/95bd571d304adf2632377d6dabc5880cfbdf36
.git/objects/d0/0491fd7e5bb6fa28c517a0bb32b8b506539d4d
$ git cat-file -t 38fd
tree
$ git cat-file -t 8195
commit
$ git cat-file -t d004
blob
$ git show d004
1

//再次提交。

$ vim 1.txt
$ git add 1.txt
$ git commit -m ‘.‘
$ find .git/objects/ -type f
.git/objects/11/91247b6d9a206f6ba3d8ac79e26d041dd86941
.git/objects/38/fd29697b220f7e4ca15b044c3222eefe5afdc1
.git/objects/4d/1356c6ae08b43a14779807b6be98554dce7d3c
.git/objects/54/57b3462c78fd6d7590a15ad3be446a4fb5d1fd
.git/objects/81/95bd571d304adf2632377d6dabc5880cfbdf36
.git/objects/d0/0491fd7e5bb6fa28c517a0bb32b8b506539d4d
$ git cat-file -t 1191
blob
$ git cat-file -t 4d13
commit
$ git cat-file -t 5457
tree
$ git show 1191
1
2

//显然,每次提交,每个文件都增加一组(commit/tree/blob)。

//查看commit、tree、blob。

$ git show -s --pretty=raw 4d13
commit 4d1356c6ae08b43a14779807b6be98554dce7d3c
tree 5457b3462c78fd6d7590a15ad3be446a4fb5d1fd
parent 8195bd571d304adf2632377d6dabc5880cfbdf36
author yourname <[email protected]> 1533719156 +0800
committer yourname <[email protected]> 1533719156 +0800
$ git ls-tree 5457
100644 blob 1191247b6d9a206f6ba3d8ac79e26d041dd86941    1.txt
$ git show 1191
1
2

//tree格式:权限 节点类型 hash 节点名称。

//commit后如果是稳定版本通常添加tag。
//git tag tagname //轻量 tag,不占对象。即.git/objects/不会增加数量。
//git tag -a tagname -m ‘note‘ //附注 tag,占对象。
//git tag tagname 4d13 //git tag tagname hash-object 为目标 commit 设置 tag。

//结论:
//commit,可以定位tree。
//tree,类似目录,可以定位其下所有tree和blob。
//blob,指向文件数据,不带名称。
//tag,指向commit。

原文地址:https://www.cnblogs.com/dailycode/p/9444302.html

时间: 2024-10-08 12:16:48

Git/Github GitBash 2.2 .git.objects的相关文章

Git/Github GitBash 001 init

$ mkdir b$ cd b$ ls -alhtotal 4.0Kdrwxr-xr-x 1 desktop 197121 0 八月 8 15:32 ./drwxr-xr-x 1 desktop 197121 0 八月 8 15:29 ../ $ git init$ ls -alhtotal 8.0Kdrwxr-xr-x 1 desktop 197121 0 八月 8 15:32 ./drwxr-xr-x 1 desktop 197121 0 八月 8 15:29 ../drwxr-xr-x 1

git &amp;&amp; github 相关

权限问题(error: The requested URL returned error: 403 Forbidden while accessing):1. 将自己机器的ssh public key放到github的setting->ssh keys里面:2. 修改$bash/.git/config里面的url中的https://*为url =ssh://[email protected]/zwChan/memcached.git,当然要指向自己的github项目了. ------------

git github usage

以gerrit-trigger-plugin为例,下面的链接都是从相应页面上直接拷贝的. 法一:不用github的账号,打开这个库在github上的主页,运行下面命令即可 read only 运行命令$Git clone https://github.com/jenkinsci/gerrit-trigger-plugin.git 下面的三种方法都要先在github上注册账户,然后生成相应的ssh key,并把public key添加到个人账户里面,详见github帮助 read+write $g

[Git/Github] ubuntu 14.0 下github 配置

转载自:http://www.faceye.net/search/77573.html 一:创建Repositories1:首先在github下创建一个帐号.这个不用多说,然后创建一个Repositories.2:然后在ubuntu下安装git相关的东东: 1 sudo apt-get install git-core git-gui git-doc -y 3:在ubuntu本地创建一个ssh密匙: 1 ssh-keygen -t rsa -C "[email protected]"

Git详解之二 Git基础

来自:http://www.open-open.com/lib/view/open1328069733264.html Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置:开始或停止跟踪某些文件:暂存或提交某些更 新.我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件:如何既快且容易地撤消犯下的小错误:如何浏览项目的更新历史,查看某

Git专题--系统的学习Git之一

本文为整理自:伯乐在线 1.Git详解之一:Git起步 2.Git详解之二:Git基础 3.Git详解之三:Git分支 4.Git详解之四:服务器上的Git 5.Git详解之五:分布式Git 6.Git详解之六:Git工具 7.Git详解之七:自定义Git 8.Git详解之八:Git与其他系统 9.Git详解之八:Git与其他系统 Git详解之一:Git起步 起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置

Git专题--系统的学习Git之二

本文为整理自:伯乐在线 1.Git详解之一:Git起步 2.Git详解之二:Git基础 3.Git详解之三:Git分支 4.Git详解之四:服务器上的Git 5.Git详解之五:分布式Git 6.Git详解之六:Git工具 7.Git详解之七:自定义Git 8.Git详解之八:Git与其他系统 9.Git详解之九:Git内部原理 Git详解之四:服务器上的Git 服务器上的 Git 到目前为止,你应该已经学会了使用 Git 来完成日常工作.然而,如果想与他人合作,还需要一个远程的 Git 仓库.

Git专题--系统的学习Git之三

本文为整理自:伯乐在线 1.Git详解之一:Git起步 2.Git详解之二:Git基础 3.Git详解之三:Git分支 4.Git详解之四:服务器上的Git 5.Git详解之五:分布式Git 6.Git详解之六:Git工具 7.Git详解之七:自定义Git 8.Git详解之八:Git与其他系统 9.Git详解之九:Git内部原理 Git详解之六:Git工具 Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务

Git详解之五 分布式Git

来自:http://www.open-open.com/lib/view/open1328070090108.html 分布式 Git 为了便于项目中的所有开发者分享代码,我们准备好了一台服务器存放远程 Git 仓库.经过前面几章的学习,我们已经学会了一些基本的本地工作流程中所需用到的命令.接下来,我们要学习下如何利用 Git 来组织和完成分布式工作流程. 特别是,当作为项目贡献者时,我们该怎么做才能方便维护者采纳更新:或者作为项目维护者时,又该怎样有效管理大量贡献者的提交. 5.1  分布式工