GIT LARGE FILE STORAGE

Git Large File Storage (git-lfs和lfs-test-server)的安装和使用

BALA
01/08/2016
GIT LARGE FILE STORAGE
Git-LFS是Git的一个开源的扩展,通过过滤器的方式将视频、音频、图片、数据库备份等大文件替换成文本指针版本控制起来存储在Git上,然后将文件本身存上传到其他远程服务器,比如AWS S3、Github或者自己构建的服务器。
LFS的使用,需要在服务器端实现相应的API,Github提供一个用Golang实现的lfs-test-server,经过简单的测试可以使用,但官方说明不建议用在生产环境。另外,在客户端需要安装git-lfs。下面介绍如何安装和使用。

安装lfs-test-server

参照https://github.com/github/lfs-test-server
 
如果用Go语言编译安装,完成下面的安装Go语言,然后执行
  • $ go get github.com/github/lfs-test-server
  • $ go install github.com/github/lfs-test-server
  • $ cd $HOME/go/src/github.com/github/lfs-test-server
  • $ go build
  • 按照https://github.com/github/lfs-test-server页面,建一个run.sh
  • $ ./run.sh

用浏览器打开http://<lfs-server-ip>:9999/mgmt,在Users添加用户和密码(基于HttpBasic的验证方式)来访问lfs-server
Drupal

 

 

安装Go语言

  • 下载Golang:https://golang.org/dl/
  • 安装步骤按照: https://golang.org/doc/install (以Linux系统为例)
    • tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
    • 添加下面两行到/etc/profile(全局)或者~/.bashrc(用户)
      • export PATH=$PATH:/usr/local/go/bin
      • export GOPATH=$HOME/go
    • 运行$ source /etc/profile 或者 $ source ~/.bashrc

安装git-lfs client

参照:https://git-lfs.github.com/
或者直接下载 https://packagecloud.io/github/git-lfs
 
这里介绍用Go语言编译安装最新的git-lfs代码,在使用的过程中有发现部分问题,比如issue #880在master分支上已经解决了。
  • 安装Go语言(如上)
  • $ git clone https://github.com/github/git-lfs.git
  • $ cd git-lfs
  • $ go build
  • $ mv git-lfs /usr/local/bin
  • $ git lfs install #每台机器运行一次就可了
  • $ git-lfs version # 虽然打印的版本是和最新的tag (1.1.0)一致,但是是master里的版本
* 编译好的git-lfs执行文件可以直接拷贝到其他机器的/usr/local/bin/git-lfs里,运行 $ git lfs install之后就可以使用了
 
完成安装后,配置lfs server连接访问。
  • $ git config --add lfs.url "http://<lfs-server-ip>:9999/"
  • $ git config --add http.sslverify false
  • 到此,基本上可以使用了

使用

  • $ git lfs track "*.psd"  # Track psd文件
  • $ git lfs track "images/**"  # Track所有在images目录下的文件
  • 以上步骤会生成.gitattributes文件,可以通过编辑器编辑增加所需要的过滤规则来确定那些被认为是打文件的或者你想要处理成打文件的文件,语法和.gitignore一样。
  • $ git lfs help <command> # 查看更多帮助命令的帮助
  • $ git lfs ls-files # 查看哪些文件被应用了LFS,需要先commit