'git filter-branch' 失败时从特定提交中删除特定文件

Remove specific file from specifc commit when 'git filter-branch' fails

我不能再在我的工作目录中提交,因为 repo 中有一些巨大的文件没有包含在 gitignore 中,所以它们在许多 commits/revisions 中被反复使用。

我已按照以下说明进行操作: http://naleid.com/blog/2012/01/17/finding-and-purging-big-files-from-git-history 但是 git filter-branch 部分失败并显示

Cannot rewrite branches: You have unstaged changes. Additionally, your index contains uncommitted changes.

在这种情况下,我如何识别例如所有提交中最大的文件,现在或过去,然后从 特定提交中仅删除特定文件?

每个提交都是整个存储库的状态,因此您还必须重写该特定提交之后的所有提交。所以不,你不能只编辑那个提交。

您看到的错误消息是关于您有未暂存的更改,因此您需要存储它们,或者使用另一个干净的结帐来进行过滤器分支以便能够继续。