Skip to content
BigBro222's Blog
LinkedInGitHub

Git LFS

Code management and collaboration1 min read

git_lfs.gif
Git LFS does this by replacing large files in your repository with tiny *pointer* files. During normal usage, you'll never see these pointer files as they are handled automatically by Git LFS:
  1. When you add a file to your repository, Git LFS replaces its contents with a pointer, and stores the file contents in a local Git LFS cache.
  2. When you push new commits to the server, any Git LFS files referenced by the newly pushed commits are transferred from your local Git LFS cache to the remote Git LFS store tied to your Git repository.
  3. When you checkout a commit that contains Git LFS pointers, they are replaced with files from your local Git LFS cache, or downloaded from the remote Git LFS store.

Git LFS (Large File Storage) is a Git extension developed by Atlassian, GitHub, and a few other open-source contributors, that reduces the impact of large files in your repository by downloading the relevant versions of them lazily. Specifically, large files are downloaded during the checkout process rather than during cloning or fetching.

Usage

1git lfs install
2
3$ git lfs install
4Updated pre-push hook.
5Git LFS initialized.
6
7$ git lfs track "*.ogg"
8Tracking *.ogg
9
10$ git lfs track
11Listing tracked paths
12*.stl (.gitattributes)
13*.png (Assets/Sprites/.gitattributes)
14*.ogg (Assets/Audio/.gitattributes)
15
16$ git lfs ls-files
17Check all files currently tracked by lfs
189a3c7dae41 * 1.png
19d61cf5835a * 2.png
20158213f90f * 3.svg
21
22$ git lfs untrack "1.png"
23Uncheck a specific file
24
25$ git add .gitattributes
26$ git commit -m "add .gitattributes"

You can also add .gitatrributes template to the local repository instead of using git lfs track

1## Unity gitatrributes template ##
2
3*.cs diff=csharp text
4*.cginc text
5*.shader text
6
7*.mat merge=unityyamlmerge eol=lf
8*.anim merge=unityyamlmerge eol=lf
9*.unity merge=unityyamlmerge eol=lf
10*.prefab merge=unityyamlmerge eol=lf
11*.physicsMaterial2D merge=unityyamlmerge eol=lf
12*.physicsMaterial merge=unityyamlmerge eol=lf
13*.asset merge=unityyamlmerge eol=lf
14*.meta merge=unityyamlmerge eol=lf
15*.controller merge=unityyamlmerge eol=lf
16
17## git-lfs ##
18
19#Image
20*.jpg filter=lfs diff=lfs merge=lfs -text
21*.jpeg filter=lfs diff=lfs merge=lfs -text
22*.png filter=lfs diff=lfs merge=lfs -text
23*.gif filter=lfs diff=lfs merge=lfs -text
24*.psd filter=lfs diff=lfs merge=lfs -text
25*.ai filter=lfs diff=lfs merge=lfs -text
26*.tif filter=lfs diff=lfs merge=lfs -text
27
28#Audio
29*.mp3 filter=lfs diff=lfs merge=lfs -text
30*.wav filter=lfs diff=lfs merge=lfs -text
31*.ogg filter=lfs diff=lfs merge=lfs -text
32
33#Video
34*.mp4 filter=lfs diff=lfs merge=lfs -text
35*.mov filter=lfs diff=lfs merge=lfs -text
36
37#3D Object
38*.FBX filter=lfs diff=lfs merge=lfs -text
39*.fbx filter=lfs diff=lfs merge=lfs -text
40*.blend filter=lfs diff=lfs merge=lfs -text
41*.obj filter=lfs diff=lfs merge=lfs -text
42*.asset filter=lfs diff=lfs merge=lfs -text
43
44#ETC
45*.a filter=lfs diff=lfs merge=lfs -text
46*.exr filter=lfs diff=lfs merge=lfs -text
47*.tga filter=lfs diff=lfs merge=lfs -text
48*.pdf filter=lfs diff=lfs merge=lfs -text
49*.zip filter=lfs diff=lfs merge=lfs -text
50*.dll filter=lfs diff=lfs merge=lfs -text
51*.unitypackage filter=lfs diff=lfs merge=lfs -text
52*.aif filter=lfs diff=lfs merge=lfs -text
53*.ttf filter=lfs diff=lfs merge=lfs -text
54*.rns filter=lfs diff=lfs merge=lfs -text
55*.reason filter=lfs diff=lfs merge=lfs -text
56*.lxo filter=lfs diff=lfs merge=lfs -text

Reference

https://gitee.com/help/articles/4235#article-header5

https://www.atlassian.com/git/tutorials/git-lfs

© 2023 by BigBro222's Blog. All rights reserved.