Origami404 的 Blog 有空的话就随便逛逛吧 www
拥有标签 轮子 的文章:

Git Command: Git 的数据使用方式

此文章施工中…

现在让我们来使用上面我们写好的 Git Object 来实现常用的 Git 命令吧.

Git Index: Git 的暂存区

此文章施工中…

二进制格式

前后顺序均按从低位到高位.

Git 实现: Object 文件

导读

本文先介绍了一些方便查看 Git Object 文件 二进制内容的命令行工具, 其次分别介绍了 4 种 Object: Blob, Commit, Tree, Tag.

每一种 Object 按"概念模型"与"二进制格式"分隔, 前者主要介绍其储存了那些抽象信息, 后者则专注于其二进制储存格式.

Git 实现: 目录 & 前言 & Git repo

前言

写这篇文章一开始主要是受到了 Write Yourself a Git, 深入理解Git实现原理 这两篇文章的激励. 俗话说学会使用轮子的最佳方法就是造一个轮子(其实是我刚刚说的), 而在使用 Python 实现的过程中又多少碰到了点前面两篇文章没有覆盖到的细节点, 特记录于此, 以飨读者.

本文章介绍顺序是先介绍其存储用的数据结构, 分别按其概念模型(包含了什么信息, 为什么要这样设计)及其二进制格式(储存在文件系统中的格式)来介绍; 随后再描述如何实现 Git 的常用功能.

本文章不是 Git 的教程, 如果读者对 Git 的操作并非十分了解的话可以参考 ProGit, 一本非常好的 Git 教材.

本文对于细节扣得有点多, 可能并不适合只想理解 Git 底层模型的读者.

或者也可以像我一样现学现写.

本文的配套代码及 Markdown 源码一同发布于 GitHub: mgit, 可以配套查看. (顺着 Commit 看我怎么挣扎着理解的说不定别有一番乐趣).

由于作者水平有限, 时间亦有限, 错漏难免, 还请大佬指正.