如何在特定提交日期之前删除git存储库中的所有提交?

时间:2020-05-18 11:12:52

标签: git repository git-commit

我有一个超过1000次提交的git存储库。 2岁了。我只想保留最近三个月的数据,我想在2020年2月1日之前删除所有提交。我尝试了removing old history from a git repository,但它只是从本地计算机上远程删除了较旧的提交。另外,它正在使用HEAD〜n删除最后n次提交,而不是在提交日期之前。

1 个答案:

答案 0 :(得分:0)

首先,删除您的历史记录可能不是一个好主意。我想不出有什么理由-除了可能的初始克隆时间外,Git可以很好地处理非常大的存储库。

但是,过去我有理由做别人无法想到的事情来做,我会把它留给您作为判断的依据。

此博客文章详细介绍了一种相当简单的方法来完成您要问的事情:https://passingcuriosity.com/2017/truncating-git-history/

总而言之(不想乱码),该方法是签出一个新的“孤立”分支(无父提交),该分支指定了要保留的最旧提交的哈希值。提交,然后在其上重新建立master分支。

免责声明:我不知道存在于“保留”范围内的分支和标签会发生什么情况。这是一种潜在的破坏性操作,因此请轻踩一下,然后单击BACKUP。