Git

How to push/pull large files to GitHub

如何实现 Github 拉取/上传 大型文件

Posted by Kylin on April 27, 2019

How to push/pull large files to GitHub

当 GitHub 上传的文件超过 100M 时,无论是使用网页端还是本地端都会出现 push error 的问题,而如果我们在本地配置 Git LFS (Git large file storage),就可以使用文件指针的方式存储大型文件

Git LFS 官方网站: https://git-lfs.github.com/

Git LFS

  • GitHub LFS是一个开源的git扩展,可以让git追踪大文件的版本信息。LFS使用文件指针来代替大文件,如音频文件,视频文件,数据采集和图形等文件,同时将文件内容存储到远程服务器,比如GitHub.com或者GitHub Enterprise。LFS是GitHu所支持的一种完全免费的服务,目的是让git能跟踪大文件。

配置 Git LFS

Ubuntu 安装

  • 执行 terminal 安装指令
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
  • 测试安装
git lfs

Mac OS 安装

  • 先配置 Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

What Does Homebrew Do?

Homebrew installs the stuff you need that Apple (or your Linux system) didn’t.

Homebrew website: https://brew.sh/

  • Terminal 安装
brew install git-lfs
  • 目录初始化
git lfs install

配置本地 .gitattributes 文件

一旦在 git 本地目录中包含了 .gitattributes 文件并 track,那么在每次 push 时都会将 .gitattributes 文件中指定的文件改变为 lfs 上传

  • 选择你需要上传的LF类型进行 track ,比如 .psd 文件( 众所周知,psd 文件是Adobe Photoshop的专用图片处理文件,属于LF文件之列)
git lfs track "*.psd"
  • 将 .gitattributes 文件 track
git add .gitattributes

接下来,我们就可以正常进行 push/pull 操作,而在当前目录下的LF则会进行文件指针上传。