清理我的bitbucket-git,更准确地说是.git / objects文件夹

时间:2014-04-12 19:41:04

标签: git bitbucket

我的回购应该是2Mo左右(我的所有来源和一些数据),但整个回购大约是19Mo,实际上.git / objects中的文件需要~17Mo ...

我在stackoverflow上读了几个关于清理git的答案。没有一个能让我正确地清理我的回购。我知道如何删除我的src和数据,但不知道如何删除/清理对象文件夹。

我试图删除我的硬盘的对象文件夹,但这破坏了我的本地回购......(我还有备份)

2 个答案:

答案 0 :(得分:0)

如果git gc --aggressive --prune=now不起作用(正如我在“Reduce git repository size”中提到的那样),您可以尝试克隆本地仓库。

git clone --mirror /path/to/your/current/repo newBarerepo.git

新克隆(newBarerepo.git中的裸仓)应该比您当前的本地(未包装)仓库小得多。
那个裸的回购是一个中间步骤(因为它没有工作树,你不能直接在它工作)。

你仍然需要克隆它(再次)以获得一个常规的回购(但其中有一个.git文件夹应该小得多。)

所以:

cd /path/to/your/bigBepo
git remote -v # note the url of oyur bitbucket repo
cd ..
git clone --mirror bigRepo BareRepo.git
git clone bareRepo.git newRepo
cd newRepo
git remote set-url origin </url/of/your/bitbucket/repo>

您可以检查newRepo/.git/文件夹的大小,看看是否改善了这种情况。

答案 1 :(得分:0)

.git/objects目录包含存储库的完整历史记录元数据。如果你有很多提交(你应该)和非常详细的提交消息(同上),即使git用于存储数据的压缩格式也会变得非常大。我的课堂笔记(压缩的LaTeX源3.3MiB,对象34MiB)就是一个很好的例子。