Git管理文件的原理分析以及Git的树对象

本文深入探讨Git的文件管理原理,分析了Git如何通过树对象存储文件和管理提交与回滚。通过实例展示了内容写入、读取、回滚的过程,解释了Git的高效源于其基于内容的文件寻址系统,以及如何通过树对象解决文件名问题。同时,文章还介绍了Git的分支本质,指出分支和标签其实都是记录特定提交的key值。
摘要由CSDN通过智能技术生成

我们知道Git与SVN有着很多区别。Git相比SVN更加高效,其中主要的原因就是它把文件内容按元数据形式存储,可以理解为存到了一种类似K/V型的数据库里。

image-20200222075617191那么我们来分析下,它到底是如何存储文件以及如何管理提交与回滚的。


1.基础环境准备

在当前目录初始化一个用于测试的Git仓库git_test_01

$ git init git_test_01;cd git_test_01;

创建一个文件并写入内容

$ echo 'first line' > test-file-01.txt;

添加到暂存区并且提交该文件

$ git add -A;git commit -am "first commit";

使用git log --pretty=oneline查看提交

image-20200222083157204

如此,我们便成功的提交了一个文件。那么让我们进入**.git目录下的objects**文件夹看看发生了什么。

image-20200222083616879

我们发现这里有个d8开头的目录,与我们上次提交后产生的hash码的开头前两位是一样的。

我们使用命令ls -l d8看看它究竟有什么

image-20200222084000069

这里是一个名称为85f1211e0cd1930bfdeecda5ac85998639f7d5的文件,我们发现将d8和这个文件名组合一下居然和上面的提交id是一样的。这两者有什么关联呢?


2.使用Git命令查看提交内容

2.1 内容写入及读取

在探究上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值