如何解决如何从以前的 Git 提交中删除文件
我正在使用 GitHub,但在处理大文件时遇到了一些问题。
我更新了一个 3rd 方库,它添加了一个大小为 119.41 MB 的文件。所以现在在 Sourcetree 中,当我尝试推送到 GitHub 时,我收到以下警告:
remote: error: File Pods/Realm/core/realm-monorepo.xcframework/watchos-arm64_i386_x86_64-simulator/librealm-monorepo.a is 119.41 MB; this exceeds GitHub's file size limit of 100.00 MB
不幸的是,我在那次提交后做了很多工作,需要推送到 repo。
有没有办法遍历项目的每个历史提交并删除所有名称为 librealm-monorepo.a
的文件?
抱歉,如果这是一个明显的问题,但我的 Git 技能非常薄弱,而且我很担心不小心把整个项目搞砸了。所以所有的建议将不胜感激:)
解决方法
您可以将 tree-filter
与 filter-branch
一起使用,这将从历史记录中完全删除文件,
git filter-branch --tree-filter 'rm -rf librealm-monorepo.a' HEAD
编辑 1:开始
为了重写历史,Git 现在建议使用名为 git filter-repo 的替代工具而不是 filter-branch
。
来自 Git 文档:
请使用替代的历史过滤工具,例如 git filter-repo。
上面的 filter-branch
命令可以针对建议的 filter-repo
重写如下:
git filter-repo --invert-paths --path librealm-monorepo.a
编辑 1:结束
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。