一、錯誤
remote: Error: Deny by project hooks setting ‘default’: size of the file ‘scientific_calculator’, is 164 MiB, which has exceeded the limited size (100 MiB) in commit ‘4c91b7e3a04b8034892414d649860bf12416b614’.
二、原因
本地提交過大文件,git push到遠程倉庫時無法提交大文件,因為遠程倉庫有單個文件大小限制。
三、解決方法
需要修改提交歷史,刪除已提交到本地倉庫的大文件的提交記錄。
從提交歷史中刪除指定文件的命令為:
git filter-branch --tree-filter 'rm -f 文件名' HEAD
如下,刪除大文件
$ git filter-branch --tree-filter 'rm -f "Electron/pdf/677969 xxxx xxx.pdf"' HEAD
Rewrite d1244f8fbc1f08b473bd498c023b09bd8ac3246b (12/12) (156 seconds passed, remaining 0 predicted)
Ref 'refs/heads/master' was rewritten
執行刪除成功會返回Ref 'refs/heads/master' was rewritten
提示,如果返回unchanged
則表示沒有任何更改。
如果文件路徑包含空格需要用引號將刪除文件路徑包含起來。
如果要刪除文件夾,要加-r選項,比如:
git filter-branch --tree-filter 'rm -rf target' HEAD