小编use*_*774的帖子

在git中对大文本文件进行版本控制

我已经使用git一段时间来进行源代码控制了,我真的很喜欢它.所以我开始调查使用git来存储大量的二进制文件,我发现这不是git的一杯茶.那么大文本文件呢?似乎git应该处理那些就好了,但我也遇到了问题.

我正在使用550mb大小的mbox样式文本文件测试它.我git init'ed新的回购做这件事.这是我的结果:

  • git add和git commit - 总回购大小为306mb - repo包含一个大小为306mb的对象
  • 添加一封电子邮件到邮箱文件和git commit - 总回购大小为611mb - repo包含两个对象,每个对象大小为306mb
  • 再添加一封电子邮件到邮箱文件和git commit - 总回购大小为917mb - repo包含三个对象,每个对象大小为306mb

因此,每次提交都会将邮箱文件的新副本添加到repo中.现在我想尝试将回购的大小降低到易于管理的程度.这是我的结果:

  • git repack -adf - 总回购大小为877mb - repo包含一个大小为876mb的包文件
  • git gc --aggressive - 总回购大小是877mb - repo包含一个大小为876mb的包文件

我希望能够将回购的大小缩小到306mb左右,但我无法弄清楚如何.任何更大的东西似乎都存储了很多重复的数据.

我希望回购只会增加收到的新电子邮件的大小,而不是整个邮箱的大小.我不是试图在这里控制电子邮件的版本,但这似乎是我使用夜间脚本逐步备份用户主目录的重大阻碍.

有关如何在将大量文本插入到非常大的文本文件末尾时保持repo大小不被破坏的任何建议?

我看过bup和git附件,但是如果可能的话,我真的很想坚持使用普通的git.

谢谢您的帮助!

git

14
推荐指数
2
解决办法
3402
查看次数

标签 统计

git ×1