说明
本文所有代码基于 GIT COMMIT e83c5163316f89bfbde7d9ab23ca2e25604af290 版本的源码,在 Ubuntu 16.04 上编译运行,部分代码有所改动。
cat-file
cat-file 是 GIT 最初版本中用于获取 SHA1 对象的内容的命令,其使用方法为 cat-file <sha1>
,该程序将获取 SHA1 对象的类型同时创建了临时文件读取原始类型(blob 类型)或对象的基本信息。其源码如下:
#include "cache.h"
int main(int argc, char **argv)
{
unsigned char sha1[20];
char type[20];
void *buf;
unsigned long size;
char