Git的理解-数据模型

本文深入探讨Git的核心——数据模型。通过初始化git仓库、创建并提交文件,展示了blob、tree和commit对象的生成与作用。Git使用SHA-1哈希值作为对象标识,tree对象表示文件夹结构,blob对象存储文件内容,commit对象记录提交历史。当文件被添加、编辑或删除时,Git相应地更新这些对象,形成完整版本历史。
摘要由CSDN通过智能技术生成

自从git诞生于2005年以来,它就已经在开源环境中大受欢迎,并且我们在工作的时候经常使用它。它是一个很棒的VCS工具,有许多优点,但学习它并不容易。我认为,在我们习惯使用git过程中喜欢它最好的方式就是通过了解它的内部工作方式。就像Edward Thomson所说的一句话:

Git命令只是对数据存储的泄漏抽象

这就我们平常无论记住多少git命令或技巧,但如果不了解git的工作原理,就会时常对git奇怪方式感到困惑。
所以,在对git的理解中,本文将要讲述的第一件事情就是git的核心和灵魂–数据模型

首先,我们可以在本地项目目录初始化一个空的git仓库。

git init

git会自动创建一个.git仓库,让我们看看它的工作目录。

.
|-- HEAD
|-- config
|-- description
|-- hooks
|   |-- applypatch-msg.sample
|   |-- commit-msg.sample
|   |-- fsmonitor-watchman.sample
|   |-- post-update.sample
|   |-- pre-applypatch.sample
|   |-- pre-commit.sample
|   |-- pre-merge-commit.sample
|   |-- pre-push.sample
|   |-- pre-rebase.sample
|   |-- pre-receive.sample
|   |-- prepare-commit-msg.sample
|   `-- update.sample
|-- info
|   `-- exclude
|-- objects
|   |-- info
|   `-- pack
|-- refs
|   |-- heads
|   `-- tags
|-- tree.md
`-- tree1.md

8 directories, 18 files

现在我把重点放在.git/object目录上,然后我们对其进行一些修改。
让我们创建一个index.c文件。

touch index.c

给它添加一些内容。

#inlcude <stdio.h>

vo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值