我有一个回购协议是(开始)为5.6G大小:Git永久删除文件不会导致较小的回购?
[email protected] ~/repo (master)
$ du -d 0 -h
5.6G .
然而,这种回购包含了一些不再需要在回购大型二进制文件。最初他们在目录结构中的不同位置,但都被命名为“tc.dat”。作为“清理”的步骤,我创建了一个cruft
目录,git mv
所有的人都到这个克鲁夫特目录,改变自己的名字tc.dat1
,tc.dat2
等
然后我有这些文件的5,tc.dat1
通过tc.dat5
然后我跟着this question,并使用filter-branch
以及清理步骤来删除cruft
目录中的这些文件的所有实例。但是,这仍然会在回购中留下原始文件名(在迁入cruft
之前)。然后我重复步骤从原来的位置在所有提交中删除,并重新做了清理步骤:
rm -rf .git/refs/original/ && git reflog expire --all && git gc --aggressive --prune
做完这一切,如果我做一个
git log --all -- tc*.dat
我看到在没有比赛我历史,表明他们完全被删除。但是,当我再次执行du
时,回购的规模仍然是5.6G。鉴于这些文件包含大约0.5GB,我希望看到这个数字下降。
我错过了什么?
会http://stackoverflow.com/questions/2116778/reduce-git-repository-size/2116892#2116892(及其提及的问题)有帮助吗? – VonC 2012-08-17 16:56:41