修剪巨大的git存储库大小

时间:2012-12-22 01:21:38

标签: git

我不是很精通使用git,而是在我的机器上使用Xcode和本地存储库。

一切似乎都很好,直到今天我试图释放硬盘上的一些空间。 我注意到在我的存储库的.git目录中有几个大文件(6.3和1.4 GB)。

Screenshot

我不知道这些文件的用途是什么,谷歌搜索几乎没有透露这些文件。

因为我有Macbook Air,所以存储空间非常宝贵。 我想找到一种压缩或删除这些大文件的方法,但我不想破坏git的版本历史记录。

3 个答案:

答案 0 :(得分:4)

截图显示了两个小索引文件和两个巨大的包。所以我相信你已经在Git中提交了一些大文件。

要查找前10大blob,您可以使用以下命令:

git verify-pack -v .git/objects/pack/<pack>.idx | sort -k 3 -n | tail -10

它应该产生:SHA-1 blob大小...... 然后你可以使用它的SHA-1来查看这个对象:

git show <SHA-1>

或者你可以知道它的名字:

git rev-list --objects --all | grep <SHA-1>

答案 1 :(得分:3)

包文件是git使用的捆绑历史文件。

如果要清理一些空间,请执行以下操作:

  • git branch列出分支,git branch -d <old branch>删除旧分支(首先执行此操作)
  • git gc将清理并压缩回购
  • git prune将删除额外的文件(例如reflog,跟踪所有提交,甚至删除的提交)
  • git gc --prune=now将在一个命令中gcprune

这样做之后,我有兴趣看看你节省了多少空间。如果您的repo的历史记录真的是7 GB,那么将它移动到外部HDD可能会更好。

答案 2 :(得分:3)

Pro Git书中有一个很好的部分,介绍当你不小心将大量内容投入存储库时应该怎么做:

http://git-scm.com/book/en/Git-Internals-Maintenance-and-Data-Recovery