3

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

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

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

4

1 回答 1

1

我想到了两个选择:

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

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

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

    但是,这将重写您的所有提交 SHA1。

  • 为了保留您的 SHA1,您将使用git replace,将历史记录分成两部分,遵循此博客文章

于 2013-02-17T14:03:23.593 回答