Using Git LFS
Background
- Git Large File Storage (LFS) is supported on CodeHub. It stores large file such as music, images, and videos outside a Git repository while users can still easily perform operations on these files as if they were within the repository. The Git extension allows more repository space and faster repository cloning, and reduces the impact of large files on the Git performance.
- If the size of a file to be uploaded exceeds 100 MB, use Git LFS.
- Get started with Git LFS:
Installing Git LFS
The following table describes the installation on different operating systems.
Operating System |
Installation Method |
---|---|
Windows |
Download and install Git 1.8.5 or a later version. Run the following command in the CLI: git lfs install |
Linux |
Run the following commands in the CLI: $ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash $ sudo apt-get install git-lfs $ git lfs install |
macOS |
Install the Homebrew software package management tool, and run the following commands: $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" $ brew install git-lfs $ git lfs install |
Configuring File Tracking
The following figure shows how to configure the file tracking.
Scenarios |
Method |
---|---|
Track all .psd files |
Run the following command: git lfs track "*.psd" |
Track a file |
Run the following command: git lfs track "logo.png" |
View tracked files |
Run git lfs track or view the .gitattributes file. $ git lfs track Listing tracked patterns *.png (.gitattributes) *.pptx (.gitattributes) $ cat .gitattributes *.png filter=lfs diff=lfs merge=lfs -text *.pptx filter=lfs diff=lfs merge=lfs -text |
Pushing Large Files
The .gitattributes file should be pushed to the repository along with the large files. After the push, run git lfs ls-files to view the list of track files.
$ 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 <URL> <SHA_ID1>..<SHA_ID2> master -> master $ git lfs ls-files 61758d79c4 * <FILE_NAME_1> a227019fde * <FILE_NAME_2>
Cloning a Remote Repository Containing Git LFS Files
Run git lfs clone to clone a remote repository that contains Git LFS files to the local computer.
$ git lfs clone <URL> Cloning into '<dirname>' 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
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot