github拒绝推送超100mb文件,可行方案有四:一、用git lfs跟踪大文件;二、拆分大文件为≤95mb子文件后提交;三、通过github releases托管(单个附件上限2gb);四、用github cli命令行上传release附件。

如果您尝试将大于 100 MB 的文件推送到 GitHub 仓库,系统会拒绝提交并提示“large files detected”,这是因为 GitHub 对单个文件有严格的大小限制。以下是应对该限制的多种可行方案:
一、使用 Git LFS 替代原生 Git 跟踪大文件
Git LFS(Large File Storage)通过将大文件内容存储在远程服务器上,仅在本地仓库保留轻量指针文件,从而绕过 GitHub 原生的文件大小限制。
1、在项目根目录执行 git lfs install 初始化 LFS。
2、运行 git lfs track "*.psd" 命令声明需由 LFS 管理的文件类型(可替换为 .zip、.mp4 等扩展名)。
3、执行 git add .gitattributes 将 LFS 配置文件纳入暂存区。
4、添加目标大文件后,运行 git add 文件名 和 git commit -m "add large file via LFS"。
5、推送时,LFS 文件将自动上传至 GitHub 的 LFS 服务端,主仓库仅保留指针。
二、拆分大文件为多个子文件后分别提交
对于不可用 LFS 处理的场景(如二进制资源包需保持完整性但无法启用 LFS),可借助归档工具将单个超限文件分割为多个符合 GitHub 限制的片段,再统一提交。
1、使用 split -b 95M largefile.zip largefile_part_ 在 Linux/macOS 下将文件切分为小于 100 MB 的块。
2、在 Windows 上可使用 7-Zip,设置“分割压缩文件为”并指定 95 MB 作为单个卷大小。
3、对每个生成的分卷文件(如 largefile_part_aa、largefile_part_ab)执行 git add 并提交。
4、向仓库 README.md 中添加明确说明:请使用 cat 或 copy 命令合并分卷后解压。
三、改用 GitHub Releases 托管大文件资产
GitHub Releases 功能允许为每个发布版本附加独立于 Git 历史的二进制文件,单个附件上限为 2 GB,且不计入仓库克隆体积。
1、在仓库页面点击 Releases → Draft a new release。
2、填写标签版本号与发布标题,勾选 This is a pre-release(如适用)。
3、在描述框下方拖入目标大文件,或点击 Attach binaries by dropping them here。
4、完成编辑后点击 Publish release,文件即托管成功并生成永久下载链接。
四、通过 GitHub CLI 上传 Release 附件(命令行方式)
当需自动化发布流程或处理 CI/CD 场景中的大文件交付时,GitHub CLI 提供了直接上传 Release 附件的能力,避免网页操作依赖。
1、确保已安装 GitHub CLI 并执行 gh auth login 完成身份认证。
2、创建新发布:运行 gh release create v1.0.0 --title "v1.0.0" --notes "Release with large asset"。
3、上传附件:执行 gh release upload v1.0.0 ./largefile.bin,CLI 将自动识别版本并上传。
4、验证上传结果:访问对应 Release 页面,确认 largefile.bin 已出现在“Assets”区域。










