多次 Git add 的垃圾对象为什么要保留在暂存区?

350 天前
 huzhikuizainali

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

527 次点击
所在节点    git
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/942726

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX