用于删除早于指定日期的提交的脚本

时间:2013-02-17 13:06:08

标签: git bash

如何删除超过X天的提交?

我想要这样做的原因是repo变得非常大,过滤和gc不再有用,我们不再需要超过5年的提交。只有4名开发人员使用此回购。

是否有可以自动执行此操作的脚本?

1 个答案:

答案 0 :(得分:0)

我想到了两个选择:

  • 通过使用--depth=N参数克隆原始仓库来创建新的存储库;这将创建一个新的历史记录,仅保留历史记录中的N最后一次提交。然后所有开发人员将切换到这个新的存储库。

    要找出N必须是什么,您可以使用以下

    git log --format=oneline HEAD@{5 years ago} | wc -l
    

    然而,这将重写所有提交SHA1。

  • 要保留SHA1,您需要使用git replace,将历史记录拆分为两个,following this blog post