我已经提交并将很久以前的大文件夹推送到我的存储库中。因此,我有一个非常大的包文件(包含存储库的历史记录)。
我想从存储库的历史记录中删除该文件夹,就好像它首先位于.gitignore
中一样。我希望这样做而不必从我的本地副本中删除它。
我发现了类似的问题,但是尝试了其中一个答案(在一个不太重要的小文件上),它从我的本地副本中删除了文件/目录,这对我来说不利情况下。
这是我试过的命令:
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch unwanted_folder' --prune-empty
git gc --aggressive --prune
提前致谢。
答案 0 :(得分:1)
您需要重写整个历史记录并将其重新启动。 git-filter-branch
(https://git-scm.com/docs/git-filter-branch)可以满足您的需求,但我会考虑使用像BFG这样的工具:https://rtyley.github.io/bfg-repo-cleaner/。