繁体   English   中英

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

[英]How to delete all the commits of a git repository before a particular commit date?

我有一个包含 1000 多个提交的 git 存储库。 它的 2 岁。 我只想保留最近 3 个月的数据,我想在 2020 年 2 月 1 日之前删除我的所有提交。我尝试从 git 存储库中删除旧历史记录,但它只是从我的本地计算机中删除了较旧的提交,而不是远程删除。 此外,它使用 HEAD~n 删除最后 n 次提交,而不是按提交日期。

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

然而,在过去,我有理由去做别人想不出任何好的理由去做的事情——我将把它留给你的判断。

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

总结一下(不想抄袭),方法是签出一个新的“孤儿”分支(没有父提交),指定您要保留的最旧提交的 hash。 提交它,然后将主分支变基到它上面。

免责声明:我不知道存在于“保留”范围内的分支和标签会发生什么。 这是一个具有潜在破坏性的操作,因此请小心行事,然后备份。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM