git从历史记录中删除目录

时间:2017-07-29 16:19:44

标签: git

我已经提交并将很久以前的大文件夹推送到我的存储库中。因此,我有一个非常大的包文件(包含存储库的历史记录)。

我想从存储库的历史记录中删除该文件夹,就好像它首先位于.gitignore中一样。我希望这样做而不必从我的本地副本中删除它。

我发现了类似的问题,但是尝试了其中一个答案(在一个不太重要的小文件上),它从我的本地副本中删除了文件/目录,这对我来说不利情况下。

这是我试过的命令:

git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch unwanted_folder' --prune-empty
git gc --aggressive --prune

提前致谢。

1 个答案:

答案 0 :(得分:1)

您需要重写整个历史记录并将其重新启动。 git-filter-branchhttps://git-scm.com/docs/git-filter-branch)可以满足您的需求,但我会考虑使用像BFG这样的工具:https://rtyley.github.io/bfg-repo-cleaner/