我有一个存储库,在此存储库中我无意中将许多大文件放到了源目录中,直到我签出到另一个位置时才注意到该错误。很大 它过去需要两秒钟下载,现在需要三分钟。
我已经删除了目录,但看不到如何通过扩展名或名称模式过滤掉特定类型的文件。
有标准的方法吗?还是骇客?
问题是,即使您在上次提交中删除了文件,添加文件时,这些文件仍存在于提交下的存储库中。
要从Git存储库中完全删除文件,最简单的选择是使用BFG Repo-Cleaner(参考)。
bfg --delete-files name_of_file.txt
另一种选择是使用git filter-branch
(参考)。以下示例将./text_files
目录从Git存储库中完全删除。
git filter-branch --tree-filter "rm -rf text_files" --prune-empty HEAD
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
删除文件后,您可能需要配置Git使其忽略。
echo text_files/ >> .gitignore
git add .gitignore
git commit -m 'Ignore text_files directory'
您还需要覆盖远程存储库。
git push origin master --force
注意:如果其他人已经克隆了该Git存储库,则他们将需要重置其本地副本以指向新的HEAD。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句