Git无法上传删除 Commit里面有大文件

1.Bug描述

因为在一次提交中不小心把一个打包的aab文件弄到commit文件里了,于是在上传的时候push rejected 了。

 因为GitHub的文件上限是100M,但是打的包太大了,有170M,所以是不能上传的,但是又是已经在Commit历史中了,并且已经好几次了,于是就想在历史中删除掉。

2.解决办法:

删除commit记录里的 app/release/app-release.aab

1.要删除 Git 历史记录中包含 app/release/app-release.aab 的 commit,您可以使用 Git 的 filter-branch 命令进行重写历史。请注意,这种操作会修改历史记录,因此在执行此操作之前,请确保您理解其潜在风险,并在执行操作之前备份重要数据。

2.首先,确保您在正确的 Git 仓库目录中。打开命令行或终端,并导航到该目录。

3.运行以下命令,使用 filter-branch 重写历史:

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch app/release/app-release.aab" --prune-empty --tag-name-filter cat -- --all

(注意上面的文件名哦)

4.此命令会遍历整个 Git 历史,并删除包含 app/release/app-release.aab 的 commit。--index-filter 参数使用 git rm --cached --ignore-unmatch 命令将该文件从每个 commit 中移除。

扫描二维码关注公众号,回复: 15991195 查看本文章

命令执行完后,Git 会重写历史记录。请注意,这可能需要一些时间,具体取决于您的项目历史的大小。

 如果报错了:

这个是因为你本地的还有更改,你继续放到commit里面 就行了,如果还有其他的报错,根据提示修改就是了。

5.完成后,您可以运行以下命令清除 Git 的垃圾数据:

git for-each-ref --format="delete %(refname)" refs/original | git update-ref --stdin

这个运行命令就行了

6.上传代码

git push --force origin

如果报错,根据提示去解决。

猜你喜欢

转载自blog.csdn.net/LoveFHM/article/details/131563696