从 git 历史记录中删除已提交的版本

从 git 历史记录中删除已提交的版本

我想从 Git 永久删除单个文件的旧修订版本(或多个修订版本)。具体来说,我想从我的公共 git 服务器存储库中删除单个文件的初始发布版本,但保留其余修订版本。我该怎么做?

我进行了一些搜索,如下所示。但似乎没有一个能回答我的具体问题。请帮忙。

多谢!

git 删除文件的最旧版本 https://stackoverflow.com/questions/930612/git-remove-oldest-revisions-of-a-file

从历史记录中完全删除(旧的)git提交 https://stackoverflow.com/questions/4987341/completely-remove-old-git-commits-from-history

如何删除 git 历史记录中的特定修订版本? https://stackoverflow.com/questions/37219/how-do-you-remove-a-specific-revision-in-the-git-history

答案1

如果历史很简单(线性),那么git rebase -i应该可以(其他替代方案基本上会做同样的事情)。如果您有多个分支,则必须在正确的点将它们重新嫁接到主分支上(您的“重写一个早期提交”只会影响您修改的分支,其他分支只会保留原始历史记录)。

我会在克隆上进行这种(危险的)实验,并在完成并验证无误后替换原始版本。请注意,任何外部克隆都会因更改的历史而变得混乱,唯一合理的做法是重新克隆每个克隆。

相关内容