我有一个存储库,其中存在大量大型二进制文件。是否可以设置git使其仅保留最后n次提交?比如我只想保留此存储库历史记录中的最后5个文件副本?但我不想每5次提交手动执行此操作?
答案 0 :(得分:4)
唯一的方法是定期重写存储库。
提交包含提交元数据的散列,提交信息,提交的父级和您提交的树。在不影响现在的情况下,不可能在过去改变某些东西。
答案 1 :(得分:3)
正如Dustin所说,唯一的方法是定期重写存储库。 Git肯定没有“内置”支持,也很可能不会很快得到这样的支持(事物的基本设计排除了这个功能)。这意味着如果你想这样做,你将不得不手动完成。
如果您想尝试一下,this question的答案会显示如何使用git filter-branch
完成此操作。
答案 2 :(得分:2)
Kindasorta。 git clone --depth N
将允许您对存储库执行“浅层克隆”。但是,您不能从此推送/克隆/获取,因此它作为开发人员不是很有用。
答案 3 :(得分:2)
使用“git rebase --interactive”。将前五个提交标记为“选择”,其余为“壁球”。