比如一个文件 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 文件呢?