突破github的100M单个大文件上传限制

偶尔把几本电子书传到github上,其中一本关于c++的有147M(在本地磁盘占用了150M空间),使用普通的方式,最终会被github 服务器拒绝。在github 官网上也有了相关说明,具体请查看:

  1. https://help.github.com/articles/working-with-large-files/
  2. https://help.github.com/articles/conditions-for-large-files/

简单的说,github 会在你上传文件大于50M的时候,给予警告 ; 大于100M的时候给出 server reject(拒绝上传)

解决方案

  • 维持单个文件在100M以内,保持原仓库,剔除单个文件大于100M的
    • github 官方解决方案
    • 网上他人解决方案1:http://www.jianshu.com/p/09a2d9db861c
    • 网上他人解决方案2:http://www.codeinterpreter.com/2015/01/solving-this-exceeds-githubs-file-size.html
    • 网上他人解决方案3 :http://jingpin.jikexueyuan.com/article/36116.html

  • 突破github限制,支持单个文件超出100M (使用 Git LFS)
    • 这也是无意中浏览解决问题的方案时看到的 有关Google Maps SDK的问题
      这里给了我们一个很好的处理方案: Git LFS 全名为:Git Large File Storage
    • Git LFS的官方网址在这里: https://git-lfs.github.com/,官网上有很详细的说明,现在来简单说下使用方式:先安装 Git LFS 的客户端,然后在将要push的仓库里重新打开一个bash命令行:
      • 只需设置1次 LFS : git lfs install
      • 然后 跟踪一下你要push的大文件的文件或指定文件类型 git lfs track "*.pdf" , 当然还可以直接编辑.gitattributes文件
      • 以上已经设置完毕, 其余的工作就是按照正常的 add , commit , push 流程就可以了 :
        1. git add yourLargeFile.pdf
        2. git commit -m "Add Large file"
        3. git push -u origin master
    • 备注: 我在push那本c++书的时候一些小细节:
      ① 在最终push的时候会打印出如下信息:
      Git LFS: (0 of 0 files, 1 skipped) 0 B / 0 B, 147.30 MB skipped
      乍一看,表面上是跳过了该文件,但是回到github上查看,真的push上去了 ,commit信息为:
      C++ Primer Plus 完整版 中文版 第六版 影印版 无目录 有页数.pdf Add a 150M pdf file 9 minutes ago
      点击该文件查看,可看到:147 MB Stored with Git LFS
      ② 目前 Git LFS的总存储量为1G左右,超过需要付费。
      突破github的100M单个大文件上传限制_第1张图片
      ③ 小伙伴们快来试试吧 !

其他知识点

  • git 在线教程 (Pro Git 中文版)

你可能感兴趣的:(Git,Github,Linux,Docker)