git设计哲学
$ mkdir test
$ cd test
$ git init
Initialized empty Git repository in /Users/lyc/Desktop/test/.git/
.git/
|--HEAD
|--config
|--description
|--hooks
| |--applypatch-msg.sample
| |--commit-msg.sample
| |--post-commit.sample
| |--post-receive.sample
| |--post-update.sample
| |--pre-applypatch.sample
| |--pre-commit.sample
| |--pre-rebase.sample
| |--prepare-commit-msg.sample
| |--update.sample
|--info
| |--exclude
|--objects
| |--info
| |--pack
|--refs
- description文件仅供GitWeb使用,不用关心它。
- config文件包含了项目特有的配置选项,如最常用的用户名和邮箱。
- info目录保存了一份不希望在 .gitignore 文件中管理的忽略模式 (ignored patterns) 的全局可执行文件。这个用得比较少,也不用太关心。
- hooks目录保存了客户端或服务端钩子脚本,一般我们都是用默认的,很少改,也不用太关心。
因此,我们需要重点关心另外四个重要的文件或目录:HEAD和index文件,objects和refs目录,因为它们是Git的核心:
- objects 目录存储所有数据内容。
- refs 目录存储指向数据 (分支) 的提交对象的指针。
- HEAD 文件指向当前分支。
- index 文件保存了暂存区域信息。
$ find .git/objects
.git/objects
.git/objects/info
.git/objects/pack
$ echo test1 > test1.txt
$ git add test1.txt
.git/
|--index
|--objects
| |--a5
| | |-- bce3fd2565d8f458555a0c6f42d0504a848bd5
$ find .git/objects
.git/objects
.git/objects/a5
.git/objects/a5/bce3fd2565d8f458555a0c6f42d0504a848bd5
.git/objects/info
.git/objects/pack
$ git hash-object test1.txt
a5bce3fd2565d8f458555a0c6f42d0504a848bd5
$ git cat-file -p a5bce3fd2565d8f458555a0c6f42d0504a848bd5
test1
$ git ls-files --stage
a5bce3fd2565d8f458555a0c6f42d0504a848bd5 test1.txt
$ git commit -m "first commit"
[master (root-commit) a3951d5] first commit
file changed, insertion(+)
create mode test1.txt
$ find .git/objects
.git/objects
.git/objects/a3
.git/objects/a3/951d57b1413275b171d967fa67fd90eecff648
.git/objects/a5
.git/objects/a5/bce3fd2565d8f458555a0c6f42d0504a848bd5
.git/objects/c0
.git/objects/c0/da834e42dcbf7b2b1c4a97925bef105d3863a3
.git/objects/info
.git/objects/pack
$ git cat-file -p a3951d57b1413275b171d967fa67fd90eecff648
tree c0da834e42dcbf7b2b1c4a97925bef105d3863a3
author lyc <yechenli2009@gmail.com> +
committer lyc <yechenli2009@gmail.com> + first commit $ git cat-file -p c0da834e42dcbf7b2b1c4a97925bef105d3863a3
blob a5bce3fd2565d8f458555a0c6f42d0504a848bd5 test1.txt
$ mkdir temp
$ cd temp/
$ echo "test2" > test2.txt
$ git add temp
$ git commit -am “second commit"
$ find .git/objects
.git/objects
.git/objects/
.git/objects//0cf8328022becee9aaa2577a8f84ea2b9f3827
.git/objects/
.git/objects//592c587f70cf6ec1b99bb382bec2ef92f83396
.git/objects/9e
.git/objects/9e/7b8054ac3ca530d8e69556dff5903cdcbdc4d3
.git/objects/a3
.git/objects/a3/951d57b1413275b171d967fa67fd90eecff648
.git/objects/a5
.git/objects/a5/bce3fd2565d8f458555a0c6f42d0504a848bd5
.git/objects/c0
.git/objects/c0/da834e42dcbf7b2b1c4a97925bef105d3863a3
.git/objects/d2
.git/objects/d2/5d2289339c751ff3f7e1ef1865a58c71d0f51c
.git/objects/info
.git/objects/pack
$ git log
commit d25d2289339c751ff3f7e1ef1865a58c71d0f51c
Author: lyc <yechenli2009@gmail.com>
Date: Sun Oct :: + second commit commit a3951d57b1413275b171d967fa67fd90eecff648
Author: lyc <yechenli2009@gmail.com>
Date: Sun Oct :: + first commit
.git/objects/d2/5d2289339c751ff3f7e1ef1865a58c71d0f51c
$ git cat-file -p d25d2289339c751ff3f7e1ef1865a58c71d0f51c
tree 35592c587f70cf6ec1b99bb382bec2ef92f83396
parent a3951d57b1413275b171d967fa67fd90eecff648
author lyc <yechenli2009@gmail.com> +
committer lyc <yechenli2009@gmail.com> + second commit
.git/objects//592c587f70cf6ec1b99bb382bec2ef92f83396
$ git cat-file -p 35592c587f70cf6ec1b99bb382bec2ef92f83396
tree 9e7b8054ac3ca530d8e69556dff5903cdcbdc4d3 temp
blob a5bce3fd2565d8f458555a0c6f42d0504a848bd5 test1.txt
.git/objects/9e/7b8054ac3ca530d8e69556dff5903cdcbdc4d3
$ git cat-file -p 9e7b8054ac3ca530d8e69556dff5903cdcbdc4d3
blob 180cf8328022becee9aaa2577a8f84ea2b9f3827 test2.txt
.git/objects//0cf8328022becee9aaa2577a8f84ea2b9f3827

git设计哲学的更多相关文章
- git database 数据库 平面文件 Git 同其他系统的重要区别 Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异 Git 的设计哲学
小结: 1.如果要浏览项目的历史更新摘要,Git 不用跑到外面的服务器上去取数据回来 2.注意 git clone 应指定版本,它复制的这个版本的全部历史信息: 各个分支 git init 数据库 ...
- 跟vczh看实例学编译原理——一:Tinymoe的设计哲学
自从<序>胡扯了快一个月之后,终于迎来了正片.之所以系列文章叫<看实例学编译原理>,是因为整个系列会通过带大家一步一步实现Tinymoe的过程,来介绍编译原理的一些知识点. 但 ...
- Python的设计哲学探究
在Python shell中输入import this就会在屏幕上打印出来Python的设计哲学,如下: In [25]: import this The Zen of Python, by Tim ...
- Java面向接口编程,低耦合高内聚的设计哲学
接口体现的是一种规范和实现分离的设计哲学,充分利用接口可以极大的降低程序中各个模块之间的耦合,提高系统的可维护性以及可扩展性. 因此,很多的软件架构设计理念都倡导"面向接口编程"而 ...
- Python的设计哲学
Beautiful is better than ugly. 优美胜于丑陋 Explicit is better than implicit. 明了胜于晦涩 Simple is better than ...
- 第八课:不一样的链表 linux链表设计哲学 5星级教程
这一课最后实现的链表,和普通链表不同,借鉴了linux内核链表的思想,这也是企业使用的链表. 基础介绍: 顺序表的思考 顺序表的最大问题是插入和删除需要移动大量的元素!如何解决?A:在线性表数据元素之 ...
- React的设计哲学 - 简单之美
React最初来自Facebook内部的广告系统项目,项目实施过程中前端开发遇到了巨大挑战,代码变得越来越臃肿且混乱不堪,难以维护.于是痛定思痛,他们决定抛开很多所谓的“最佳实践”,重新思考前端界面的 ...
- Python的设计哲学--zen of Python
Python的设计哲学--zen of Python Beautiful is better than ugly. 优美胜于丑陋 Explicit is better than ...
- 理解numpy中ndarray的内存布局和设计哲学
目录 ndarray是什么 ndarray的设计哲学 ndarray的内存布局 为什么可以这样设计 小结 参考 博客:博客园 | CSDN | blog 本文的主要目的在于理解numpy.ndarra ...
随机推荐
- hdu4705Y
链接 这题可以算树形DP吧 树上的递推 对于树上的某个节点 反着算比较好做 就是算有多少有simple路径的 固定某个节点u 另两个节点 有两种取法 1.从不同子树里各选一个 2.从所有子树里选一个 ...
- 使用Bugfree不应有的坏习惯
Bugfree是一款优秀的bug管理和追踪工具,因此受到不少公司的青睐.但实际的工作中,我发现不少开发或是测试的同事有一些不好的使用习惯,使得我们对Bugfree的利用不够高效.我下面列出使用Bugf ...
- [liu yanling]软件开发的过程按阶段划分有:单元测试 集成测试 系统测试 验收测试
从软件开发的过程按阶段划分有:单元测试 集成测试 系统测试 验收测试测试过程按 4 个步骤进行,概念内容如下:单元测试:单元测试是对软件基本组成单元(如函数.类的方法等)进行的测试.集成测试:集成测试 ...
- 安装tcpreplay时报错:configure: error: libdnet not found
安装tcpreplay时报错configure: error: libdnet not found 解决方法: 下载包libdnet-1.8.tar.gz并安装,依次执行: ./configure m ...
- as3+java+mysql(mybatis) 数据自动工具(二)
AutoScript 项目结构如下图 ---AutoScript.java 为程序入口 ---com.autoscript.object 同步 as3 和 java 的数据类 ---com.autos ...
- qosort 使用使用小例子
输入 1500 3150 300100 200 输出结果470 471100 200150 300470 471 #include <iostream> #inc ...
- oracle rac存储安装
oracle rac 10.2 的在 linux 上的存储选项 博客分类: Oracle OracleLinux项目管理配置管理 Oracle 集群需要存储的软件和数据 项目 内容 最少磁盘空间 C ...
- POJ 3279 Fliptile (质量不错)
题意:有一个M*N的棋盘,每一个格子只有两种状态0或1,每次可以选择一个格子执行翻转操作,并且与该格子相邻的4个格子都会被翻转,求将所有格子都翻转成0所需要的最小操作数,若有多种方案,输出字典序最小的 ...
- 《Introduction to Algorithm》-chaper33-计算几何学
叉积: 在平面中我们为了度量一条直线的倾斜状态,为引入倾斜角这个概念.而通过在直角坐标系中建立tan α = k,我们实现了将几何关系和代数关系的衔接,这其实也是用计算机解决几何问题的一个核心,计算机 ...
- 皮皮果模式系统开发app
皮皮果系统定制开发,皮皮果网站系统开发. 皮皮果游戏横空出世,比QQ农场有过之而无不及,深得广大玩家喜爱.无论草根百姓还是达官贵人,都可以来学习娱乐的游戏.让你在娱乐中收获物质生活和精神生活,英伦果园 ...