6

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

4

2 回答 2

3

调查这篇文章中提到的黑魔法git replace,来自Pro Git书中,它以你的确切情况为例。基本上,如果您可以在历史记录中找到要充当新根的点,则可以将其替换为没有父级的提交,就好像它是凭空创建的一样。您甚至可以将原始树存储在一台机器上,以便在您再次需要时轻松恢复历史记录。

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

于 2012-10-26T19:10:11.970 回答
0

Deleting history probably won't fix your problem. Chances are, at some point in time, a large file was committed to the repository and subsequently removed.

I would take a look at Find files in git repo over x megabytes, that don't exist in HEAD.

于 2012-10-26T18:02:34.583 回答