前言
- 这篇文章也是参考了“Git内部存储原理”这篇文章,大概理解了后,当记流水账,加深自己的影响,如有错误,敬请指出。
- 个人观点,叙述一件事或者完成一件工作,应当先在整体框架下,尽可能先完成基础模块,然后由基础模块加上业务逻辑最终形成应用,由一个或者多个应用解决实际面临的问题。这篇文章我也会先按模块再应用的方式叙述。
基本对象
- 之前不理解git的内部原理,只是觉得好用,在看论文网上写的文章后,觉得其实git作者在解决问题的时候一直很直接,用分而治之儿不是囫囵吞枣的方式很好的解决了项目迭代的问题,这种思想值得自己好好学习学习。
- 这里不延伸去讨论具体的实现,只讨论ta的逻辑功能和解决什么问题。
blob对象
在git中,文件会被压缩保存,所有的文件最后都会被单独的作为一个blob
对象,都有一段唯一hash码与之对应,blob
对象主要是解决单个文件的变动记录。
例如:在git文件夹下存在两个文件|
Makefile
和README
,那么git
在处理的时候就会创建一个blob
对象用于记录。
./git
|-----Makefile
|-----README