如何向GitHub上传超过100MB的大文件

Git是一个版本控制工具,Github是一个项目托管网站。一般来说,我们会对代码进行版本控制,而记录代码的文件通常也很小,所以,我一般也不会用这种上传大文件的需求。并且,往GitHub上传超过50MB的文件时,它会警告你,认为这会影响性能,超过100Mb,直接报错。综上,我觉得往GitHub上传大文件是我不需要掌握的技能。

直到最近,我发现我上传的一个项目里面居然有一个400Mb的数据时,我就不得不去处理之前我觉得没有必要的蠢问题。(总不可能把数据放在百度网盘让人下载吧,这不太体面)

往Github上传大文件,我们需要使用GitHub的LFS(Large File Storage)服务,其中免费版允许2GB(超过2GB就需要付流量费)。

首先,点击Github仓库的Setting中,

Setting

在其中的Archives中勾选Git LFS对应选项

Git LFS

第二步,在服务器上安装Git LFS

1
2
3
4
# centos
sudo yum install git-lfs
# ubuntu
sudo apt install git-lfs

第三步: 设置LFS

1
2
3
git lfs install
# 提示信息如下
Git LFS initialized.

第四步: 在你项目下设置你需要跟踪的大文件,例如我需要跟踪R语言保存的二进制文件,一般是以Rds, Rds, Rdata, Rda结尾的文件

1
2
3
4
5
6
git lfs track "*.rds"
git lfs track "*.Rds"
git lfs track "*.Rdata"
git lfs track "*.Rda"
# 让git跟踪记录lfs信息的文件
git add .gitattributes

第五步:正常使用Git管理你的项目,上传到GitHub

1
2
3
4
5
6
7
8
9
git add data/*.rds
git commit -m "add rds"
git push origin master
``

上传的时候,提示信息如下

```nbash
Uploading LFS objects: 0% (0/1), 3.4 MB | 129 KB/s

整体上,并不复杂,相当于在基础款的Git上安装一个插件而已。

参考资料: