今天在往Github推送项目的时候突然提示:
remote: error: File .vscode/.browse.c_cpp.db is 109.31 MB; this exceeds GitHub's file size limit of 100.00 MB
我先是在某一个分支branchA
修改了.gitignore
文件,忽略.vscode
目录并顺便忽略build
目录提交一个commit
。然后运行git checkout brachA .gitignore && git rm --cached -rf ./build && git rm --cached -rf .vscode && git add . && git commit -m"Update .gitignore"
然后再次提交还是发现有问题,这个文件在历史的commit里面还是存在。
所以我们需要解决的问题是:在所有提交的commit
历史中移除某个文件。
以下这个命令解决了我的问题,此命令把.vscode/.browse.c_cpp.db
文件从所有
分支的所有
提交中删除:
git filter-branch --tree-filter 'rm -f .vscode/.browse.c_cpp.db' -- --all
如果你仅仅运行了上面那个命令,记得还是要更改.gitignore
文件,忽略.vscode
目录和build
目录然后再提交。
如果那个大文件是你的项目的一部分,那么也可以通过安装git LFS来支持大文件的提交。参考下文即可:
通过Git LFS在GitHub上传超过100M的文件 - weixin_34205076的博客 - 优快云博客
参考文献: