使用Git LFS上传大文件到GitHub教程,以及可能会遇到的坑(使用了Git LFS却依然传不上超过100M的文件;framework库如何添加等)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jjjjjj123321/article/details/84890893

什么是Git LFS?

Git LFS(Large File Storage) 是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持

简单的说,就是如果你想传超过100M的二进制文件到GitHub,你就要用Git LFS!

安装Git LFS

首先确保电脑已经安装了Git并且版本不低于1.8.5

下面为不同平台的安装方法:

Linux

  1. curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
    `
  2. sudo apt-get install git-lfs
  3. git lfs install

Mac

 (本人为mac版本,在安装时候发生了权限错误问题,提示“

fatal: cannot copy '/usr/local/git/share/git-core/templates/hooks/pre-receive.sample' to '/usr/local/Homebrew/.git/hooks/pre-receive.sample': Permission denied
  1. 安装HomeBrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. brew install git-lfs
  3. git lfs install
  4. ”解决办法:https://stackoverflow.com/questions/40592463/homebrew-install-fails-while-copying-files

Windows

  1. 下载安装 windows installer
  2. 运行 windows installer
  3. 在命令行执行 git lfs install

可以通过命令“git lfs version”来查看git lfs是否安装完成

如何使用Git LFS

下面开始添加大文件到git lfs

所有的步骤都完成了

可能会遇到的问题

1,(使用了Git LFS却依然传不上超过100M的文件)

进行到上面第五步git push之后依然提示,文件超过100M,上传失败之类的错误信息,如下

  1. 如果有大文件"xxx/aaa",xxx为你启动终端的相对路径,aaa是超过100M的大文件
  2. 输入命令git lfs track "xxx/aaa"---添加aaa文件,git lfs会在工程目录下生成一个gitattributes
  3. 输入命令git add .
  4. 输入命令git commit -m "add big file aaa to the github"
  5. 输入命令git push

wodeMacBook-Pro:xxx$ git push origin master

Uploading LFS objects: 100% (1/1), 137 MB | 0 B/s, done                         

Counting objects: 111, done.

Delta compression using up to 4 threads.

Compressing objects: 100% (110/110), done.

Writing objects: 100% (111/111), 56.71 MiB | 174.00 KiB/s, done.

Total 111 (delta 21), reused 0 (delta 0)

remote: Resolving deltas: 100% (21/21), completed with 4 local objects.

remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.

remote: error: Trace: de35e860e6f088f7ca549a40b47655df

remote: error: See http://git.io/iEPt8g for more information.

remote: error: File xxx/aaa is 130.82 MB; this exceeds GitHub's file size limit of 100.00 MB

To https://github.com/xxx

 ! [remote rejected] master -> master (pre-receive hook declined)

error: failed to push some refs to 'https://github.com/xxx'

那你可能跟我一样,是在添加大文件100M之后,并且push失败了才下载的git lfs并且添加aaa到git lfs的。

只需要放弃之前添加aaa大文件那次的commit,重新提交文件就可以了

如何撤回commit,可以参考下面的文章

https://blog.csdn.net/quiet_girl/article/details/79487966

比如我自己的操作:

wodeMacBook-Pro:xxx$ git log

wodeMacBook-Pro:xxx$ git reset --hard ac89782e303fd38f423edc678dec823d43a65f35

wodeMacBook-Pro:xxx$ git lfs track "xxx/aaa"

wodeMacBook-Pro:xxx$ git add .

wodeMacBook-Pro:xxx$ git commit -m "add aaa"

wodeMacBook-Pro:xxx$ git push

2,(Framework文件的上传) 

如果你是要上传比较大的framework库文件,需要主要的是,framework是一个库文件,二进制文件是包含在里面的,直接添加framework到git lfs是没有用的,需要添加里面的二进制文件

比如我想添加GoogleMobileAds.framework

wodeMacBook-Pro:xxx$ git lfs track "XXX/ADs/GoogleMobileAds.framework/GoogleMobileAds"

这样就可以了 

猜你喜欢

转载自blog.csdn.net/jjjjjj123321/article/details/84890893