可以在git存储库中保存未版本的文件

这是问题:

我在我的托管合作伙伴地方创建了裸机git仓库,我用作我维护我的项目的所有位置/计算机的参考资料库。

事实是我的项目正在使用一个sqlite数据库文件,它不断增长(现在大约是150MB)。
随着时间的流逝,我的.git文件夹越来越大(最近大约1GB)。我的主机空间有限。

我需要裸机才能包含这个数据库文件的HEAD版本,但我真的不需要保留其版本历史。

所以,为了获得一些空间,我不时会从历史记录中删除db文件,清理存储库并重新创建裸版本。这是有效的,但是相当痛苦。

有没有办法告诉git只保留文件的最后一个版本并放弃其历史记录?

简答:否

更有用的答案:Git不单独跟踪文件,所以要求它丢弃单个文件的历史记录,这意味着它必须在每次提交时完全重写所有的历史记录,并导致各种丑陋的问题。

您可以在注释标签中存储文件,但这不是很方便。它基本上是这样的:

ID=`git hash-object -w yourfile.sqlite`
git tag -a -m "Tag database file" mytag $ID

没有办法方便地更新(甚至创建)工作树中的数据库文件,您将不得不使用钩子脚本来模拟。

全面披露:我不完全确定是否可以推送未被正常历史覆盖的标记的blob。我怀疑这不是,在这种情况下,这个食谱将远远少于有用的。

转载注明原文:可以在git存储库中保存未版本的文件 - 代码日志