关于从 git 历史记录中删除某些文件存在一些问题(即,从 Git 存储库中删除文件而不从本地文件系统中删除它)。但是,我找不到从历史记录中删除所有 .gitignore 文件的方法。问题是我有一个个人本地存储库并且不太关心被忽略的文件,但现在我需要共享它,并且由于大量不相关的 *.csv、*.zip 和 *.zip 和其他文件。它们分布在相当多的目录之间,很难一个接一个地执行此任务。
那么,是否可以对git rm --cached
具有某些扩展名的所有文件执行 a ?
关于从 git 历史记录中删除某些文件存在一些问题(即,从 Git 存储库中删除文件而不从本地文件系统中删除它)。但是,我找不到从历史记录中删除所有 .gitignore 文件的方法。问题是我有一个个人本地存储库并且不太关心被忽略的文件,但现在我需要共享它,并且由于大量不相关的 *.csv、*.zip 和 *.zip 和其他文件。它们分布在相当多的目录之间,很难一个接一个地执行此任务。
那么,是否可以对git rm --cached
具有某些扩展名的所有文件执行 a ?
是的,这是为之git filter-branch
设计的任务。你可以这样做:
git filter-branch --tree-filter 'rm *.csv *.zip' HEAD
如果您想在本地工作目录中不跟踪这些文件,最好在存储库的另一个克隆中执行此操作。