比如一个文件readme.txt 。修改一次 git add ,第二次修改,然后 git add ,第三次修改 然后再git add。这时候你会发现以上三次add形成的blod文件都留在硬盘上。不明白Git如此设定的目的是什么?留下前两个版本的blod文件在暂存区有什么作用呢?
暂存区保留第三版blod文件,那么当你在工作区又修改了readme.txt以后,git stauts git diff 都会用到第三版的 blod文件。但是前两版的blod有什么用呢?站在用户需求的角度想不到这两个老版本有什么用?而且commit时会提交两个老版本blod文件么?
如果它们有用,那么git为什么要专门提供 git prune命令去删除前两个版本呢?
如果说它们没用吧,那么git add 时为什么不采用覆盖机制,直接用新版blod替换掉上一版的blod文件呢?
如果是为了回滚,那么在什么场景下回滚代码不用Git库中的,一定要用暂存区的历史版本呢?