git remote: error: hook declined to update

本文介绍了解决Git因文件过大(超过100MB)导致无法提交的问题。通过使用git filter-branch命令,从历史记录中移除特定的大文件,从而避免提交错误。详细步骤包括查找错误文件,执行过滤分支命令,最终成功推送更改。

今天git提交同步失败,报错如下

remote: error: File app/class_files.txt is 146.18 MB; this exceeds file size limit of 100.0 MB
remote: error: hook declined to update refs/heads/dev

! [remote rejected] dev -> dev (hook declined)

原来编译项目后无意中多了个文件class_files.txt,文件太大,超过git限制。

删掉本地文件,再推,还是报错。回滚,再推,还是同样的错误。

因为这个大文件在记录中已经存在,因此无论怎么删改,都不行的,所以要在日志中把这个文件删除即可。

网上搜到的有这样的命令

git filter-branch -f --prune-empty --index-filter ‘git rm -rf --cached --ignore-unmatch文件名’ --tag-name-filter cat – --all

我执行后是有问题的,报了这样一个问题

fatal: bad revision ‘rm’

后来又查找到一个命令

git filter-branch -f --index-filter “git rm -rf --cached --ignore-unmatch 文件名” – --all

执行后再push成功了

完成的解决步骤如下:
1、先执行

git ls-files

查看错误文件的完整路径
2、再执行下面的命令

git filter-branch -f --index-filter “git rm -rf --cached --ignore-unmatch app/class_files.txt” – --all

然后再Push即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值