git删除历史记录提交



我有一个大量的存储库,我想删除一年多以前的变化历史。这可能吗?可以使用git rebase,但是如何使用?

在本文中,从 pro git git 书籍中研究了称为 git replace的黑魔法,它以您的确切情况为示例。基本上,如果您可以找到要充当新根源的历史上的观点,则可以用没有父母的提交代替它,就好像它是用稀薄的空气创建的。您甚至可以将原始树存储在一台计算机上,如果需要再次需要,可以轻松恢复历史记录。

请注意,git rebase(和git replace)的问题是您要重写整个树(包括分支),因此它们都指向不同的提交。这也具有使您团队中其他人的变化很难合并的结果,因为所有父母的SHA都与以前不同。

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

我会查看X Megabytes的Git Repo中的查找文件,而不是头部。

最新更新