不小心在git中commit了过大的文件怎么办

由于在做lab5的时候不小心把内存的dump文件复制到了工程里并且commit了,之后我虽然删除了本地的文件,但是push的时候仍然提示我文件过大。经过查找资料,我发现了如下解决办法。

首先我试过直接rm,但是之前已经作死地commit过了,这样是没有效果的。因为 Git 会记录你所有的历史提交,为了回滚需要,只要是在git中存在过一次的文件,就会被永久记录下来,不论当前是否存在。

1.查看空间占用

git count-objects -v # 查看 git 相关文件占用的空间
du -sh .git # 查看 .git 文件夹占用磁盘空间

2.找到仓库记录中的大文件

git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"

3.重写这些大文件涉及到的所有提交

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch {your-file-name}' --tag-name-filter cat -- --all

4.同步远程仓库

git push origin --force --all

注意,如果调用了这个方法,在向远端 push 的时候,必须强制覆盖git push origin --force --all

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值