2013-05-06 85 views
0

在准备提交时,我git添加文件f两次,只用它的第二个版本提交。我可以从.git/objects中删除f的版本1吗?即使中间版本没有被提交,.git/objects是否包含我的git增加的“无用的”副本?我怎么做一些清理?无用的Git缓存/索引对象?

+0

你确定git是否保持第一个版本?当您再次添加同一个文件时,它会丢弃先前添加的未提交版本的文件似乎很合乎逻辑。 – Shahbaz 2013-05-06 15:08:03

回答

3

git gc将为“一些命令”自动运行,但它也说:我们鼓励

用户在每个存储库中运行定期这个任务,保持良好的磁盘空间利用率和良好的经营业绩。

混帐GC将默认修剪2周龄不可达的对象,但是你可以重写与--prune选项持续时间。

要专门只删除不可访问的对象,可以使用git prune。从它的笔记:

在大多数情况下,用户不需要直接调用git prune,而应该调用git gc来处理修剪以及许多其他内务处理任务。

有关修剪考虑哪些对象的描述,请参阅git fsck的--unreachable选项。

+0

我的意思是:我可能希望这种清理“现在”发生(也许意外地包含了一些内容以保持私密性。) – Robottinosino 2013-05-06 14:57:06