当我开始我的项目时,我忘记将某些文件添加到我的 .gitignore 中,因此提交了我不应该添加的文件。之后我忽略了这些文件,如here所述。损坏已经发生,因为文件仍然存在于我的存储库的历史记录中,现在我的存储库大小为 10GB!
由于上述原因,我没有推送文件,因此重写历史记录应该没问题。简而言之,我需要做的是重写历史记录,以便之后.gitignore
存储库中的任何提交中都不存在当前文件。
编辑:有很多小文件导致大文件,所以关于如何删除超过特定大小阈值的所有文件的建议重复并不能解决这个问题。
要将提交历史重置为原始提交历史,您可以使用git reset --hard origin/branchname
.
要忽略文件并将其从历史记录中删除,您可以遵循以下两个方面:
.gitignore
文件(如果你没有)通过touch .gitignore
..gitignore
。允许使用通配符。然后提交更改。git rm filename -r --cached git commit
git filter-branch --index-filter 'git rm --ignore-unmatch -r --cached filename' --prune-empty -f -- --all
要整理你的本地库(你也可以跳过此步骤):
rm -Rf .git/refs/original
rm -Rf .git/logs/
git gc
git prune --expire now
为了推动改写历史,以远程:
git push -f --all
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句