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