GitHub announced as open source Git extension, Git large file storage (Large File Storage, referred LFS) The objective is to better the "large binary files, such as audio files, data sets, images and video," integrated into Git workflow in.
As we all know, Git stored in binary files is not efficient because:
By default, Git compressed and stored in binary files for all the full version, if the binary number, which is clearly not optimal.
Git LFS handling large binary files is to replace them with "text pointer." The text pointer is actually a text file that contains the binary file information. Text pointer is stored in Git, and large file itself via HTTPS hosted on Git LFS server.
Git LFS lfs add a new command to Git supports the following parameters:
config: Display Git LFS configuration.
init: Initialization Git LFS.
logs: Display git-lfs errors.
track: adding a large file to the Git repository; allows you to specify the file name extension.
untrack: remove a file from Git LFS in.
push: The file is currently monitored pushed to Git LFS server.
status: Displays the path to produce changes Git LFS object.
If you want to add a large warehouse existing file, you can:
git lfs track "* .pdf"
git add file.pdf
git commit -m "Add design file" git push origin master
According to official sources GitHub, Git achieve LFS server API currently only two: a reference to the server implementation and GitHub.com, which is not yet available. GitHub has announced a free LFS program allows up to "1GB free file storage space and 1GB monthly traffic." Larger packages need to pay, but has not yet announced specific costs.
Prior to Git LFS appear, developers would be able to use git-annex manage large binary files. The latter is a Git extension, similar principles and Git LFS, the contents of the file is stored in the .git / annex, whereas the symbolic link is stored in the corresponding position Git repository.