Git Large File Storage ====== Git LFS is a command line extension for managing large files. It replaces large files with text pointers inside Git, while storing the actual files in a remote Git LFS server. The Git LFS client is written in Go, with pre-compiled binaries available for Mac, Windows, Linux, and FreeBSD. See [CONTRIBUTING.md](CONTRIBUTING.md) for info on working on Git LFS and sending patches. ## Getting Started Download the [latest client][rel] and run the included install script. The installer should run `git lfs init` for you, which sets up Git's global configuration settings for Git LFS. [rel]: https://github.com/github/git-lfs/releases ### Configuration Git LFS uses `.gitattributes` files to configure which are managed by Git LFS. Here is a sample one that saves zips and mp3s: $ cat .gitattributes *.mp3 filter=lfs -crlf *.zip filter=lfs -crlf Git LFS can help manage the paths: $ git lfs add "*.mp3" Adding path *.mp3 $ git lfs add "*.zip" Adding path *.zip $ git lfs path Listing paths *.mp3 (.gitattributes) *.zip (.gitattributes) $ git lfs remove "*.zip" Removing path *.zip $ git lfs path Listing paths *.mp3 (.gitattributes) ### Pushing commits Once setup, you're ready to push some commits. $ git add my.zip $ git commit -m "add zip" You can confirm that Git LFS is managing your zip file: $ git lfs ls-files my.zip Once you've made your commits, push your files to the Git remote. $ git push origin master Sending my.zip 12.58 MB / 12.58 MB 100.00 % 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://github.com/github/git-lfs-test 67fcf6a..47b2002 master -> master See the [Git LFS overview](https://github.com/github/git-lfs/tree/master/docs) and [man pages](https://github.com/github/git-lfs/tree/master/docs/man).