我意外地将一个不需要的文件(filename.orig在解析合并时)提交到我的存储库几个提交之前,直到现在我才注意到它.我想从存储库历史记录中完全删除该文件.
是否可以重写更改历史记录,以便filename.orig从未首先添加到存储库中?
我犯了一个“小”错误,并向我的本地存储库添加了一个“小”(> 100MB)文件。
两次提交后,我尝试推送到 github 中的远程存储库,该存储库的限制为 100MB。
我可以使用 删除当前提交中的文件git rm --cached,但它仍在之前的提交中。
如何从所有提交中删除该文件?我已经尝试过这个关于 git filter-branch 的答案,但不适合我的。
我从这个aritcle学习"树"和"索引":通过实例学习Git Internals
但是当谈到"git filter-branch"命令时,我不知道"--tree-filter"和"--index-filter"之间有什么区别.
我的 .gitignore 文件包含
project/app/__pycache__
Run Code Online (Sandbox Code Playgroud)
但是当我运行 git status 时,它会报告此目录中文件的更改......
mydomain:main satishp$ git status
On branch master
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: project/app/__pycache__/__init__.cpython-37.pyc
deleted: project/app/__pycache__/models.cpython-37.pyc
Run Code Online (Sandbox Code Playgroud)
将此目录包含在 .gitignore 中不应该阻止这种情况吗?或者我做错了什么?