Origin 拒收超过一百兆的文件

IDE 3.24 起,向 Origin 仓库推送时如果有文件超过一百兆被拒绝,错误会点出这些文件的名字,不再叫你先拉取。说明写了用 Git LFS 跟踪,并从这次推送的每一个提交里去掉该文件,但没有附上改写历史要用的命令。

Origin 拒收超过一百兆的文件

origin 推送超过一百兆时,IDE 3.24 的报错和以前不一样。发行说明的 Git 一节写:Source Control 推向 Origin 仓库,因文件超过 100 MB 被拒绝时,错误会点名超限的一个或多个文件,而不再叫你先 pull。它还会说明怎么处理:用 Git LFS 跟踪该文件,并把它从这次推送里的每一个提交中去掉。

作者:CodePass 技术编辑

先看错误里有没有文件名

有文件名,才对得上这一节。没有文件名、只说认证失败或找不到 origin 命令,走的是另一条:登录和 PATH,见 Origin Git 推送失败怎么查。一百兆这一节没有改登录流程。

说明写的是“这次推送里的每一个提交”。文件只在最新一笔提交里变小不够,更早的提交里若还留着超限版本,推送仍会带上它。LFS 跟踪只影响之后的新提交,不会自动改写已经存在的历史。说明把两件事放在同一句:跟踪,并且从这次推送的每个提交里移除。

100 MB 是说明里的数字。它没有写这个上限能不能按仓库调高,也没有写 GitHub 镜像仓是不是同一个数。报错出现在推向 Origin 的时候。推向别处被拒,不要套这句文案。

说明没有给现成的改写历史命令

发行说明停在“用 Git LFS 跟踪,并从每个提交里去掉”。它没有给出 git lfs 或 git filter-repo 的命令行。不同仓库的默认分支和是否已经推送过部分提交不一样,照抄一套改写历史的命令会伤到别人已经拉走的提交。需要改历史时,按你们仓库自己的备份和协作约定做,本文不提供一套通用命令。

写作日没有向 Origin 推送过超过一百兆的文件,没有看到新文案的截图。若 3.24 之前的 Cursor 仍提示你先 pull,升级后再看错误是否点名文件。点名了还不写 LFS、只把大文件留在历史里再推一次,说明里的拒绝条件仍然成立。

参考资料