鱼C论坛

 找回密码
 立即注册
查看: 1091|回复: 2

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

[复制链接]
头像被屏蔽
发表于 2023-5-25 05:26:56 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-25 05:27:46 | 显示全部楼层
Git的设计思想是版本控制,保留多个版本的文件是为了方便用户在需要时回溯历史版本。每次git add都会将修改后的文件保存为一个blob对象,这些对象会被暂存区所引用。暂存区是一个缓存区域,保存着下一次提交时所要保存的文件状态,包括新增、修改和删除等操作。所以,每次执行git add都会将修改后的文件保存在暂存区中,不会直接覆盖之前的blob对象,因为这些旧版本的blob对象仍然被其他分支或tag所引用,如果直接覆盖,会导致历史版本的内容发生改变,影响到其他分支或tag的内容。

同时,保留多个版本的文件也方便用户进行代码回滚或者查看历史版本,这是Git版本控制的核心功能之一。当用户需要查看历史版本时,Git会根据提交记录找到对应的blob对象,从而还原出历史版本的文件内容。因此,保留多个版本的文件是Git版本控制的基础。

如果用户确定某个blob对象不再被其他分支或tag所引用,可以使用git prune命令删除该blob对象。这样可以减少Git对象库的大小,提高Git的性能表现。

总之,Git保留多个版本的文件是为了实现版本控制和方便用户回溯历史版本,同时也要保证历史版本的内容不会受到影响。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2023-5-25 05:51:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 21:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表