1 引言
知其然,还要知其所以然。
本文通过示例,分析了git add命令的内容。
对于理解add的原理,非常有用。
2 命令
git add file
截图如下:
之后比较执行命令前后的变化。
3 分析
图示如下:
可以看出,有三部分内容:
①、工作区新增文件;
②、暂存区(索引区)有修改;
③、对象区(objects目录),新增了21开头的目录及文件,该处保存的是实体对象。
查看index区的内容,如下:
可见,保存了一个与objects对象区一致的哈希值ID。
4 原理过程
结合上述实际分析情况,得到如下原理图:
5 总结
add命令,是将工作区的内容,添加到暂存区和对象区。
实际上,index原本的含义是索引区,多数书籍都翻译成暂存区,表示将文件暂存一下,我认为并不合适,真正保存的地方,还是对象区。
但是,大家都这么翻译,也就沿用习惯吧。