Git删除误提交的大文件

git误提交了一些构建结果二进制文件,继续删除此二进制文件提交,代码仓库依然很大,因为此文件依然在.git下面,确保你可以根据历史记录来找到此文件。

首先我们需要找到是哪一个提交记录带过来的此文件,文件名是啥 ,后面会使用到这个文件名。

# 列出最大的5个文件和对应的提交记录ID
$ git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"

删除大文件,重写提交记录

$ git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch docker-file/jdk/fonts.tar.gz' --prune-empty --tag-name-filter cat -- --all

# 删除original文件夹
rm -rf .git/refs/original/
# 修剪旧的reflog条目
git reflog expire --expire=now --all
# 验证数据库中对象的连接性和有效性
git fsck --full --unreachable
# 打包解压缩的对象。 删除冗余的对象
git repack -A -d
# 清理不必要的文件并优化本地存储库
git gc --aggressive --prune=now
# 强制推送到远程git仓库
$ git push origin --force --all

 

参考:

彻底删除误提交到git仓库的文件_Mingyueyixi的博客-CSDN博客彻底删除误提交到git仓库的文件参考简要版https://blog.csdn.net/lwfcgz/article/details/49453375复杂版:https://stackoverflow.com/questions/2004024/how-to-permanently-delete-a-file-stored-in-githttps://blog.csdn.net/x...https://blog.csdn.net/Mingyueyixi/article/details/102316874

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值