如何删除超过X天的提交?
我想要这样做的原因是repo变得非常大,过滤和gc不再有用,我们不再需要超过5年的提交。只有4名开发人员使用此回购。
是否有可以自动执行此操作的脚本?
答案 0 :(得分:0)
我想到了两个选择:
通过使用--depth=N
参数克隆原始仓库来创建新的存储库;这将创建一个新的历史记录,仅保留历史记录中的N
最后一次提交。然后所有开发人员将切换到这个新的存储库。
要找出N
必须是什么,您可以使用以下
git log --format=oneline HEAD@{5 years ago} | wc -l
然而,这将重写所有提交SHA1。
要保留SHA1,您需要使用git replace
,将历史记录拆分为两个,following this blog post。