Git删除历史记录提交

时间:2012-10-26 17:53:17

标签: git

我有一个超过3年的大型存储库git,我想删除超过一年前的更改历史记录。这可能吗?可以使用git rebase但是如何?

2 个答案:

答案 0 :(得分:3)

调查git replace中名为this article from the Pro Git book的黑魔法,它以您的确切情况为例。基本上,如果您可以在历史记录中找到您想要充当新根的点,则可以将其替换为没有父项的提交,就好像它是凭空创建的一样。您甚至可以将原始树存储在一台计算机上,以便在需要时轻松恢复历史记录。

请注意,git rebase(和git replace的问题)是您想要重写整个树,包括分支,因此它们都指向不同的提交。这也会导致团队中的其他人难以合并他们的更改,因为所有父母都有不同的SHA。

答案 1 :(得分:0)

删除历史记录可能无法解决您的问题。在某个时间点,可能会有一个大文件被提交到存储库并随后被删除。

我会看看Find files in git repo over x megabytes, that don't exist in HEAD