我不那么精通使用git
,但一直在我的机器上使用 Xcode 和本地存储库。
一切似乎都很好,直到今天我试图释放硬盘上的一些空间。我注意到在我的存储库.git
目录中有几个大文件(6.3 和 1.4 GB)。
我不知道这些文件的用途,谷歌搜索几乎没有发现它们。
因为我有一台 Macbook Air,所以存储空间非常宝贵。我想找到一种方法来压缩或删除这些大文件,但我不想破坏git
的版本历史。
我不那么精通使用git
,但一直在我的机器上使用 Xcode 和本地存储库。
一切似乎都很好,直到今天我试图释放硬盘上的一些空间。我注意到在我的存储库.git
目录中有几个大文件(6.3 和 1.4 GB)。
我不知道这些文件的用途,谷歌搜索几乎没有发现它们。
因为我有一台 Macbook Air,所以存储空间非常宝贵。我想找到一种方法来压缩或删除这些大文件,但我不想破坏git
的版本历史。
屏幕截图显示了两个小索引文件和两个大包。所以我相信你已经在 Git 中提交了一些大文件。
要查找前 10 个最大的 blob,可以使用以下命令:
git verify-pack -v .git/objects/pack/<pack>.idx | sort -k 3 -n | tail -10
它应该产生:SHA-1 blob size ... 然后你可以使用它的 SHA-1 查看这个对象:
git show <SHA-1>
或者你可以了解它的名字:
git rev-list --objects --all | grep <SHA-1>
包文件是 git 使用的捆绑历史文件。
如果要清理一些空间,请执行以下操作:
git branch
列出分支并git branch -d <old branch>
删除旧分支(首先执行此操作)git gc
将清理和压缩回购git prune
将删除额外的文件(例如reflog
,跟踪所有提交,甚至是已删除的提交)git gc --prune=now
意志gc
并prune
在一个命令中完成此操作后,我很想看看您节省了多少空间。如果你的 repo 的历史真的是 7 GB,你最好把它移到外部硬盘上。
Pro Git 书中有一个很好的部分,介绍了当你不小心将一些巨大的东西提交到你的存储库中时该怎么做:
http://git-scm.com/book/en/Git-Internals-Maintenance-and-Data-Recovery