2013-01-09 179 views
2

我的git存储库开始变得太大了。在单个SSD上,我有一个存储库和两个包含大量二进制文件的克隆,占用了很多空间。删除/折叠git历史

每天,cron作业都会将主克隆推送到存储库以创建长时间更改的历史记录。

但是,任何一个月以上的东西都不值得继续保持。我希望能够删除那些旧的提交以节省大量的空间......以编程方式。

我见过大量的例子,使用rebasesquash,一对使用gc,和其他一些非常时髦的。其中大部分要求您手动输入要删除的提交标记。

我想从我的存储库中删除所有提交超过30天的提交(我想我必须在其他地方配置挂钩来折叠历史记录),每个月都从bash脚本中删除。

+0

我想说的是版本控制系统没有设计成不保留完整的历史。事实上,你可以用git做到这一点并不意味着你需要git。 – aragaer

+0

是的,但我仍然找不到更好的东西。 Git勾选所有正确的框! 我应该为这个任务做另一篇关于Git的替代方案吗? – CJxD

回答

0

好的如何。它获得第一次提交然后启动rebase。只需删除提交到您的喜好。

# Get first commit 
git log --format=%H | tail -1 | xargs git rebase -i 

ref

+0

二进制文件对于系统是必不可少的。它实际上是一个Minecraft服务器。 – CJxD