eout
发布于

Git 内部原理图解——对象、分支以及如何从零开始建仓库

https://www.freecodecamp.org/chinese/news/git-internals-objects-branches-create-repo/

我们中的许多人每天都在使用 git,但是有多少人知道它的内部是怎么运作的呢?

例如我们使用 git commit 时发生了什么?提交(commit)与提交之间保存的是什么?两次提交之间难道只是文件的差异(diff)吗?如果是,这个差异是如何编码的?还是说每次提交都会保存一个当前仓库的完整快照(snapshot)呢?我们使用 git init 时到底发生了什么?

很多 git 的使用者都不知道这几个问题的答案,但这又有什么关系呢?

首先,作为专业人员,我们应当努力弄清楚手中使用的工具,尤其是那些我们一直都在使用的——比如 git。

但是我深刻地意识到,理解 Git 的工作原理在很多情况下都非常有用——不管是解决合并冲突、进行有趣的变基(rebase)操作,还是在某些东西变得有点不对劲的时候。

如果你有足够的 git 经验,对 git pull、git push、git add 或 git commit 这些命令得心应手,你会从本文中获益。

不过,为了确保我们在 git 的原理(尤其是本文上下所使用的术语)上步调一致,我们将从概览开始。

我也在 YouTube 上传了一个涵盖本文所有内容的系列视频——欢迎在此观看。

我们会从对象(object)——blob、树对象(tree) 和 提交对象(commit) 开始,然后简单讨论一下 分支(branch) 及其实现方式,之后会深入 工作目录(working directory)、暂存区(staging area) 和 仓库(repository)。

从.git目录内容一步步分析,了解git

浏览 (833)
点赞
收藏
评论