git - 从 git repo 中完全删除一个文件(从某个时间点开始)

标签 git git-filter-branch git-rewrite-history

我有一个包含大约 2030 次提交的代码库。在大约提交 2000 时,一个文件被修改,导致它的大小意外地从大约 20M 增加到 1.2 GB。是否可以重写历史以删除此文件,但只能从提交 2000 中删除? (我不想丢失此文件的先前历史记录)

我在考虑 git-filter-branch,但找不到告诉它“来自提交”的方法 - 这可能吗?

干杯 迈克

最佳答案

git-filter-branch 的手册页包含了这个决定性和权威的例子。

如果你想在某个提交之前停止重写,在tag01之前说:

git-filter-branch ......  -- master ^tag01

用你已有的点代替。 tag01 可能是任何 commit-ish (revspec)

PS:如果你使用标签,不要忘记 --tag-name-filter cat 也重写这些

关于git - 从 git repo 中完全删除一个文件(从某个时间点开始),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6466235/

相关文章:

linux - 阻止其他 git 作者

git - 删除旧 git 提交历史记录中大文件的所有痕迹

git - 如何干净地分割 Git 存储库?

git - git rebase --onto 分支后的 ~ 是什么意思?

Git 修改/改写(不添加/更改文件)

git - 首次提交到 git 存储库时遇到问题

git - Mercurial Hg-Git : Clone from a local directory?

git - 如何以非交互方式重新排序 Git 中的提交

git - 为什么开发人员提交 .dist 文件而不是实际文件?

Git - 重写所有受影响的提交用户电子邮件 - 不适用于事件