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


1

我想从Git中永久删除单个文件的旧版本(或修订版)。具体来说,我想从我的公共git服务器repo删除我的单个文件的初始发布版本,但保留其余的修订。我怎样才能做到这一点?

我做了一些搜索,如下所示。但他们似乎都没有回答我的具体问题。请帮忙。

非常感谢!

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

Answers:


0

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

我会在克隆上进行这个(危险的)实验,并在完成后更换原件并验证是否正确。请注意,任何外部克隆都会因改变的历史而被混淆,唯一合理的做法是重新克隆每个克隆。


谢谢@vonbrand。我发现其他人提出了使用“git rebase -i”的简短建议,但由于缺乏细节,我发现它只适用于未评论的分期更改,并且它似乎缩短了整个项目的历史,而不是单个文件。
13年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.