假设在2月1日我们有Git存储库,大小为5 MB。在添加了一些图像并将它们提交到2月10日之后,我们收到了15 MB的回购。
如何从repo中删除此图像并将大小减小到5 MB?
答案 0 :(得分:1)
更容易清理git存储库是使用' BFG repo cleaner'
https://rtyley.github.io/bfg-repo-cleaner/
(比git-filter-branch更容易,速度更快!)
但请注意,它将改变所有历史记录,修改提交的sha1并影响所有开发人员!
答案 1 :(得分:0)
以下两条说明将遍历您的存储库中的每个提交,并删除您在<file>.<extension>
注意: 请注意,因为这确实会更改存储库的历史记录!
git filter-branch --tree-filter "rm -f <file>.<extension>" -- --all
或
git filter-branch --index-filter "git rm --cached --ignore-unmatch <file>.<extension>" -- --all
注意: 两个过滤器(--tree-filter
和--index-filter
)之间的差异就是一切发生的地方。在以后,该指令在暂存区域中执行,与工作目录相反。此外,你运行后
filter-branch,git
在 .git 目录中保留树的备份。默认情况下,您无法再次运行filter-branch,因为它不会覆盖备份。为了绕过这一点,您可以在-f
指令后添加filter-branch
选项。这将覆盖备份。
答案 2 :(得分:-1)
进入您的存储库和文件目录
示例:
cd app/public/images
然后输入以下命令;
git rm -rf ./*
这将从git存储库中删除目录中的文件。 为了打破它,用git'你显然指导git做某事。 'rm'是删除文件的命令。标志'-rf'做两件事。 'r'允许递归删除;而'f'是通过覆盖最新的检查来强制采取行动的。
'./*'选择输入命令时所在目录中的所有文件。
您可以在此处找到更多信息:https://git-scm.com/docs/git-rm