git 大文件上传以及下载
Git LFS 1.0 发布,现已提供给 GitHub.com 的所有仓库。
Git LFS 是开源 Git 扩展,GitHub 在 4 月份发布,集成到 Git 工作流中。
Git LFS 1.0 包含一些新特性和 bug 修复,值得关注的改进:
完全重写 HTTP 客户端和 API 规范,改进并发,传输上千万文件的时候可以降低开销
新增
git lfs fetch
和git lfs pull
命令,比标准 Git smudge 过滤器更快-
提供哪些文件可以在 checkout 时自动下载的定制选项
Selectively ignore a directory of large files that you don’t need for daily work
Download recent files from other branches
改进
git lfs push
提供 Windows 安装器和 Linux 包
一个尝试性的扩展系统,可以定制对象如何存储在服务器中。
Git LFS 提供给 GitHub.com 的所有用户,请安装尝试,更多内容请看发行说明。
Git LFS 是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持。
Git LFS 大文件支持
Coding 支持 Git LFS(Git Large File Storage)扩展,编码过程中大文件提交请使用 Git LFS。查看 Coding Git LFS 文档。
使用 Git LFS 提交的大文件不占用 Git 仓库存储空间,理论上可以提交的单个文件大小无上限。
安装 Git LFS
注意:安装 Git LFS 需要 Git 的版本不低于 1.8.5。
Linux
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
Mac
-
安装 Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git-lfs
git lfs install
Windows
- 下载安装 windows installer
- 运行 windows installer
- 在命令行执行
git lfs install
使用 Git LFS
有关 Git 操作请查看 Git 仓库文件管理。
追踪文件
没有特别说明的情况下,Git LFS 不会处理大文件问题,使用 git lfs track
命令进行大文件追踪。
追踪单个文件
例如追踪一个名为『coding.png』的文件,使用git lfs track "coding.png"
命令
追踪同一后缀的所有文件
如果要追踪所有后缀为『png』的文件,使用git lfs track "*.png"
命令。运行此命令后,不但会追踪已存在的所有后缀为『png』的文件,也包括以后创建的『png』文件。
查看正在追踪的文件模式(patterns)
运行命令 git lfs track
:
Listing tracked patterns *.png (.gitattributes)
提交大文件
提交代码时需要将『.gitattributes 』文件也提交到仓库,提交完成后,执行git lfs ls-files
命令可以查看 LFS 跟踪的文件列表。
f05131d24d * cat.png 7db207c488 * dog.png
将代码 push 到远程仓库后,LFS 跟踪的文件会以『Git LFS』的形式显示:
$ git push origin master Git LFS: (2 of 2 files)12.58 MB / 12.58 MB Counting objects: 2, done. Delta compression using up to 8 threads. Compressing objects: 100% (5/5), done. Writing objects: 100% (5/5), 548 bytes | 0 bytes/s, done. Total 5 (delta 1), reused 0 (delta 0) To https://git.coding.net/coding/coding-manual.git 67fcf6a..47b2002 master -> master
克隆包含 Git LFS 文件的远程仓库
使用 git lfs clone
命令 clone 包含『Git LFS』文件的远程仓库到本地。
$ git lfs clone https://git.coding.net/coding/coding-manual.git Cloning into 'coding-manual' remote: Counting objects: 16,done. remote: Compressing objects: 100% (12/12),done. remote: Total 16 (delta 3), reused 9 (delta 1) Receiving objects: 100% (16/16),done. Resolving deltas: 100% (3/3),done. Checking connectively...done. Git LFS: (4 of 4 files) 0 B / 100 B
了解更多 Git LFS 的使用,可执行
git lfs help
命令查看帮助。