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 大文件上传以及下载_第1张图片



Git LFS 大文件支持

文章内容

  • 1 安装 Git LFS
  • 2 使用 Git LFS
    • 2.1 追踪文件
    • 2.2 提交大文件
    • 2.3 克隆包含 Git LFS 文件的远程仓库
  • 3 将原有仓库转换为 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

  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

  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

Windows

  1. 下载安装 windows installer
  2. 运行 windows installer
  3. 在命令行执行 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命令查看帮助。

原文地址: https://github.com/git-lfs/git-lfs/wiki/Tutorial

你可能感兴趣的:(git)