使用git在历史记录中保留一定数量的提交

时间:2009-12-08 21:35:43

标签: git

我有一个存储库,其中存在大量大型二进制文件。是否可以设置git使其仅保留最后n次提交?比如我只想保留此存储库历史记录中的最后5个文件副本?但我不想每5次提交手动执行此操作?

4 个答案:

答案 0 :(得分:4)

唯一的方法是定期重写存储库。

提交包含提交元数据的散列,提交信息,提交的父级和您提交的树。在不影响现在的情况下,不可能在过去改变某些东西。

答案 1 :(得分:3)

正如Dustin所说,唯一的方法是定期重写存储库。 Git肯定没有“内置”支持,也很可能不会很快得到这样的支持(事物的基本设计排除了这个功能)。这意味着如果你想这样做,你将不得不手动完成。

如果您想尝试一下,this question的答案会显示如何使用git filter-branch完成此操作。

答案 2 :(得分:2)

Kindasorta。 git clone --depth N将允许您对存储库执行“浅层克隆”。但是,您不能从此推送/克隆/获取,因此它作为开发人员不是很有用。

答案 3 :(得分:2)

使用“git rebase --interactive”。将前五个提交标记为“选择”,其余为“壁球”。