【git学习】git lfs实现大文件传输

git-lfs/2.8.0 (GitHub; linux amd64; go 1.12.7; git 30af66bb)
git lfs [ ]

Git LFS is a system for managing and versioning large files in
association with a Git repository. Instead of storing the large files
within the Git repository as blobs, Git LFS stores special "pointer
files" in the repository, while storing the actual file contents on a
Git LFS server. The contents of the large file are downloaded
automatically when needed, for example when a Git branch containing
the large file is checked out.

Git LFS works by using a "smudge" filter to look up the large file
contents based on the pointer file, and a "clean" filter to create a
new version of the pointer file when the large file's contents change.
It also uses a pre-push hook to upload the large file contents to
the Git LFS server whenever a commit containing a new large file
version is about to be pushed to the corresponding Git server.

Commands

Like Git, Git LFS commands are separated into high level ("porcelain")
commands and low level ("plumbing") commands.

High level commands

  • git lfs env:
    Display the Git LFS environment.
  • git lfs checkout:
    Populate working copy with real content from Git LFS files.
  • git lfs fetch:
    Download Git LFS files from a remote.
  • git lfs fsck:
    Check Git LFS files for consistency.
  • git lfs install:
    Install Git LFS configuration.
  • git lfs lock:
    Set a file as "locked" on the Git LFS server.
  • git lfs locks:
    List currently "locked" files from the Git LFS server.
  • git lfs logs:
    Show errors from the Git LFS command.
  • git lfs ls-files:
    Show information about Git LFS files in the index and working tree.
  • git lfs migrate:
    Migrate history to or from Git LFS
  • git lfs prune:
    Delete old Git LFS files from local storage
  • git lfs pull:
    Fetch Git LFS changes from the remote & checkout any required working tree
    files.
  • git lfs push:
    Push queued large files to the Git LFS endpoint.
  • git lfs status:
    Show the status of Git LFS files in the working tree.
  • git lfs track:
    View or add Git LFS paths to Git attributes.
  • git lfs uninstall:
    Uninstall Git LFS by removing hooks and smudge/clean filter configuration.
  • git lfs unlock:
    Remove "locked" setting for a file on the Git LFS server.
  • git lfs untrack:
    Remove Git LFS paths from Git Attributes.
  • git lfs update:
    Update Git hooks for the current Git repository.
  • git lfs version:
    Report the version number.

Low level commands

  • git lfs clean:
    Git clean filter that converts large files to pointers.
  • git lfs pointer:
    Build and compare pointers.
  • git lfs pre-push:
    Git pre-push hook implementation.
  • git lfs filter-process:
    Git process filter that converts between large files and pointers.
  • git lfs smudge:
    Git smudge filter that converts pointer in blobs to the actual content.

Examples

To get started with Git LFS, the following commands can be used.

  1. Setup Git LFS on your system. You only have to do this once per
    repository per machine:

    git lfs install
    
  2. Choose the type of files you want to track, for examples all ISO
    images, with git lfs track:

    git lfs track "*.iso"
    
  3. The above stores this information in gitattributes(5) files, so
    that file need to be added to the repository:

    git add .gitattributes
    
  4. Commit, push and work with the files normally:

    git add file.iso
    git commit -m "Add disk image"
    git push

猜你喜欢

转载自www.cnblogs.com/Ryan0v0/p/13198819.html