众所周知,平时我们在工作时,提交代码的流程基本上都是:
①修改/添加新文件(一个或者多个)
②git add ***
③git commit -m "***"
解释:
①:一般情况下,都是人为执行git add命令后,git会将我们做的修改直接添加到了暂存区
②:但是大多数人都不知道的是,git在将代码添加到暂存区之前,还做了一步,那就是将代码添加到版本库,也就是生成git对象(也就是说,当我们执行git add命令时,git首先会将代码生成git对象添加到版本库,这里对多少个文件做了修改,就会响应的生成多少个git对象,然后再将git对象读到暂存区保存一份)
③:结合底层命令,当我们执行git add命令时底层做了什么?
第一:执行git hash-object -w "文件路径"一次或者多次(这就要看改动了多少个文件)
第二:执行git update-index命令
④:结合底层命令,当我们执行git commit命令时底层做了什么?
第一:执行git write-tree命令
第二:执行git commit-tree命令