Github和Gitee上传100M文件

Github 跟踪大文件

GitHub 对于仓库的大小有限制,通常情况下单个文件不能超过 100 MB。但是,GitHub允许你上传大文件,方法是使用 Git Large File Storage (LFS 大文件存储)。
Windows配置:
以下是使用 Git LFS 上传大于 100 MB 的文件到 GitHub 的步骤
1.先进入本地Git仓库,安装 Git LFS。可以在 Git LFS 的官方网站上找到安装指南
2.初始化 Git LFS仓库(如果还没有初始化的话):(只需要初始化一次就可以)
1
git lfs install
3.配置 Git LFS 跟踪大文件:使用以下命令告诉 Git LFS 跟踪特定文件类型的大文件
*.type替换为你想要跟踪的文件类型或者文件名。例如,如果你想跟踪所有的 PDF 文件,你可以使用 *.pdf。
1
git lfs track "*.type"
4.添加和提交大文件:使用常规的 Git 命令 git add 和 git commit 将大文件添加到 Git LFS 管理中。例如:
1
2
git add .gitattributes large_file.ext
git commit -m "Add large file using Git LFS"

注意:git lfs track 的规则写在 .gitattributes 里,该文件必须与大文件一起提交,否则他人克隆后拿不到大文件内容。

5.推送到远程仓库:常规推送即可,Git 会自动把被 LFS 跟踪的文件上传到 LFS 存储。
1
git push
6.验证 LFS 跟踪状态:
1
git lfs ls-files

Ubuntu配置:
1
2
sudo apt-get install git-lfs # 安装git-lfs
git lfs install # 初始化
查看Git LFS安装的配置信息的命令
1
git lfs env

| 有如下提示,表示安装成功
git-lfs/3.4.1 (GitHub; linux amd64; go 1.22.2)
git version 2.45.2 |

安装成功后,跟踪、提交、推送大文件的步骤与上文 Windows 第 3~6 步相同。

Gitee 跟踪大文件

Windows:

Gitee 个人免费版不支持 Git LFS(仅企业版标准/尊享套餐支持),因此不能照搬上文 GitHub 的 LFS 方案。
免费版限制:单文件 ≤ 100 MB、单仓库 ≤ 1 GB、单次 push ≤ 200 MB(超过会报 413 错误)。

方案一:7-Zip 分卷压缩(推荐)

把大文件切成 50 MB 的分卷后提交入库:

1
"C:\Program Files\7-Zip\7z.exe" a -v50m bigfile.7z bigfile.iso

本地克隆后只需解压第一卷,会自动合并其余分卷:

1
"C:\Program Files\7-Zip\7z.exe" x bigfile.7z.001

方案二:Release 附件

在 Gitee 网页创建 Release,把大文件作为附件上传,不占仓库容量,适合版本发行场景。

方案三:升级企业版使用 Git LFS

企业版标准/尊享套餐支持 Git LFS,命令与上文 GitHub 方案完全相同。


Ubuntu:

用系统自带 split 分卷(无需安装第三方工具):

1
split -b 50m bigfile.iso bigfile.part-   # 切成 50M 分卷

克隆后合并还原:

1
cat bigfile.part-* > bigfile.iso

其余限制与方案同 Windows(Release 附件 / 企业版 LFS)。


原理:
Git LFS:Git LFS(Large File Storage)是一个扩展工具,用于管理大文件。它允许你将大文件存储在 Git 仓库之外,并在仓库中保留文件的引用。通过使用 Git LFS,你可以上传和管理大文件,而不受 GitHub 文件大小限制的影响。
Git LFS 官方网站(https://git-lfs.github.com/)
使用 LFS 时,仓库里只保存很小的”指针文件”,实际内容存放在独立的 LFS 服务器,克隆时按需下载。
平台支持差异:GitHub 全面支持 LFS(免费额度约 1 GB 存储 + 1 GB 流量/月);Gitee 免费版不支持 LFS,仅企业版支持。