git 删除历史已提交的大文件

方法一:

第一步:根据提示查找大文件路径及名称,发现是@wenjuan/tduck/tduck-api.jar

git rev-list --objects --all | grep 5a221c1c863b40077026b462deec42ca5a766869

第二步:删除历史已提交的大文件

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch @wenjuan/tduck/tduck-api.jar' --tag-name-filter cat -- --all

第三步:当出现如下表示成功

Rewrite d18ea177f68b154f4ac59914d6f03280ea3164cf (21/21) (19 seconds passed, remaining 0 predicted)
Ref 'refs/heads/master' was rewritten
Ref 'refs/stash' was rewritten

第四步:使用git stash解决

git stash

第五步:重新提交即可。

方法二:

第一步:查找大文件,使用上面的方法也可以

git ls-files | xargs du -h | sort -hr | head -20

第二步:删除历史已提交的大文件,需要在cmd命令行中安装pip install git-filter-repo,警告:这会重写 Git 历史!

git filter-repo --path chromedriver --invert-paths --force

第三步:使用强制推送,按照上面git stash应该也可以

git push py master --force