如果有文件大小大于 100M,GitHub 是会被限制推送到仓库中的,大概率情况会显示下面的错误:
remote: Resolving deltas: 100% (3601/3601), done.
remote: error: Trace: aea1f450da6f2ef7bfce457c715d0fbb9b0f6d428fdca80233aff34b601ff59b
remote: error: See https://gh.io/lfs for more information.
remote: error: File Ektron_Prod/App_Data/GeoIPOrg.dat is 139.96 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
对于上面的问题,我们需要使用 LFS 服务。
找到合并信息
运行下面的代命令,找到我们合并后仓库中的合并信息:
git lfs migrate info --everything --above="100MB"
这个命令将会找到在当前仓库中有那些文件的扩展名大小超过 100MB。
我们得到了下面的输出。
migrate: Sorting commits: ..., done.
migrate: Examining commits: 100% (17/17), done.
*.dat 587 MB 4/13 files 31%
LFS Objects 0 B 0/4517 files 0%
提交处理
从上面的输出中,我们看到了 .dat 文件有超过 100 MB。
下一步,我们需要运行命令对针对这个文件的提交进行处理。
git lfs migrate import --everything --include="*.dat"
随后,控制台输出:
migrate: Sorting commits: ..., done.
migrate: Rewriting commits: 100% (17/17), done.
master 7f1f2a07b4dc972e6243984675bd28a3ea15b212 -> 3de8026c759fe6a22199d4df7c640e1bbd1b28e0
migrate: Updating refs: ..., done.
migrate: checkout: ..., done.
使用命令进行提交
运行下面的命令,将本地代码仓库提交到远程:
git push --all origin -u
当然,在这个提交之前,需要设置远程仓库的地址,这个你可以通过修改 config 文件进行修改。
再次确认所有 LFS 文件提交
在合并的过程中,可能会有些大型文件没有提交到 LSF 上面。
所以需要运行下下面的命令,再次确认所有的 LFS 文件被提交。
git lfs push origin --all