Git提交大文件报错解决方法
豆豆 2023-01-12 14:10:59 720人已围观
使用git提交一批文件报错如下:
解决方案:
方案一:撤销commit
1.先查看一下最近提交的commit的版本号。
git log
输入字母:q 退出 git log 命令
2.依次撤销commit(包含过要删除的大文件的commit必须都给撤销了,要不然会报错)
git reset xxxxxxxxxxxxx
3.你一定在想你的代码还在不在?不要担心,上面的撤销只是对commit命令的撤销,不会对你修改过的代码撤销的,他们还是在的。
4.删除掉本地的大文件(或者备份到其他地方)和提交记录
git filter-branch -f --index-filter 'git rm -rf --cached --ignore-unmatch */-新时代中国特色社会主义理论与实践14976858 .pdf' HEAD rm -rf .git/refs/original/ git reflog expire --expire=now --all git fsck --full --unreachable git repack -A -d
注意第一个命令: git filter-branch -f --index-filter 'git rm -rf --cached --ignore-unmatch */*新时代中国76858*.pdf' HEAD
5.重新进行提交
git add . git commit -m '提交版本的注释' git push
非常完美的解决了此问题。
方案二:清除大文件
1、在GIT目录下打开Git bash Here命令框查询文件具体位置
使用错误提示上面的Blob ID :92dd0f8c
git rev-list --objects --all |grep 92dd0f8c
2、 清除掉提交到本地仓库的大文件
使用上面已经找到的具体文件路径清除掉提交记录,你最好是将这个大文件另外报错一份。一下是过滤掉此大文件的具体命令,注意必须是双引号,不然会报错
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch --ignore-unmatch 国际音标1.DAT'
3、再次强制提交
git push --force --all
最后在删除掉该文件,防止下次又提交该文件