我们中的许多人每天都在使用 git,但是有多少人知道它的内部是怎么运作的呢?
例如我们使用 git commit 时发生了什么?提交(commit)与提交之间保存的是什么?两次提交之间难道只是文件的差异(diff)吗?如果是,这个差异是如何编码的?还是说每次提交都会保存一个当前仓库的完整快照(snapshot)呢?我们使用 git init 时到底发生了什么?
发现一篇非常精彩的 Git 内部原理文章Git 内部原理图解——对象、分支以及如何从零开始建仓库,中文翻译。文章作者甚至制作了配套讲解视频