好的,大约700次提交前(> 30天)我意外地在我的本地Git存储库中保存了ThirdParty / mapper / Songbird_1.2.0-1146_windows-i686-msvc8.exe(iTunes下载类型)而没有注意到,这也是推到远程托管的git存储库,前几天我注意到repo超过200mb,而我期待大约20mb。
我已按照以下说明操作: http://github.com/guides/completely-remove-a-file-from-all-revisions
除了运行git gc --aggressive --prune之外,本地目录仍然超过200mb。在我可以对远程仓库进行排序之前,我需要对我的本地进行排序,我的情况是否有一些特殊之处(即大量文件,很久以前提交)。如何完全删除此文件并将目录缩小到正确的大小?
注意避免迁移:我觉得这更适合StackOverflow,因为Git目前主要是本地开发人员工具,社区支持而不是任何主流发行版或系统管理员期望的一部分,即在开发时知道管理员的时刻git最好的。
答案 0 :(得分:3)
我在"git: shrinking Subversion import."
中写过类似的问题
git filter-branch
manpage有一个清单,用于收缩建议运行filter-branch
然后克隆以留下遗留物的存储库。使用文件系统路径进行克隆会产生硬链接,因此请使用URL:
$ git clone file:///home/gbacon/src/dBTools.git
即便这样做,一些大的未命名的blob幸存了克隆。感谢freenode上的#git建议切除reflog:
$ git reflog expire --verbose --expire=0 --all $ git gc --prune=0