我的git repo有一个庞大的.pack文件。有没有办法安全地删除它?

时间:2017-11-06 06:18:49

标签: git

我对git internals知之甚少,但我确实看到有一个.pack文件特别占用方式,比我的.git目录中的其他文件更多的空间(9 GB的repo&# 39; s 30 GB)。有没有什么方法可以安全地摆脱它而不会失去回购的完整性?

1 个答案:

答案 0 :(得分:2)

packfile是git中的节省空间的机制。

每当提交对文件的更改时,都会创建包含新文件和旧文件之间更改的新对象。这意味着当提交新版本的文件时,git不必存储文件的多个副本。

来自git-scm.com

  

packfile是一个单独的文件,包含从文件系统中删除的所有对象的内容。索引是一个包含该packfile偏移量的文件,因此您可以快速搜索特定对象。很酷的是,尽管在运行gc之前磁盘上的对象总共大约为22K,但新的packfile只有7K。您通过打包对象将磁盘使用量减少了。。

如果您对节省空间感兴趣,可以使用previous SO answer来描述如何缩小历史记录。然后,您可以运行git gc重新打包您的包文件(没有'压缩'对象)。