Git 在特定日期之前删除所有提交中的文件

Git 在特定日期之前删除所有提交中的文件,git,Git,如何删除所有提交的文件已得到回答,但我在指定要修改的提交的范围时遇到问题。我想在2017-12-13之前从所有提交中删除MYFILE 这就是我尝试的方式 git筛选器分支--force--索引筛选器'git rm--cached--ignore unmatch MYFILE'--prune empty--tag name filter cat--before=“2017-12-13” --将选项与非选项参数分开。在您的情况下,不需要它,因此命令应该是 git filter-branch --fo

如何删除所有提交的文件已得到回答,但我在指定要修改的提交的范围时遇到问题。我想在2017-12-13之前从所有提交中删除
MYFILE

这就是我尝试的方式

git筛选器分支--force--索引筛选器'git rm--cached--ignore unmatch MYFILE'--prune empty--tag name filter cat--before=“2017-12-13”

--
将选项与非选项参数分开。在您的情况下,不需要它,因此命令应该是

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch MYFILE' --prune-empty --tag-name-filter cat --before="2017-12-13"

不幸的是,这也不起作用。当我运行代码行时,终端向我显示git过滤器分支的选项。最后,我在没有cat命令的情况下运行了它,但随后该文件从所有提交中删除了…然后,似乎该任务不可能完成-可能是因为
filter branch
必须将整个分支重写到其头部。使用
rebase
-它还会重写整个分支,但您只能编辑您感兴趣的提交。