Git LFS track folder recursively

后端 未结 2 893
一生所求
一生所求 2021-01-30 15:19

Is it possible to track recursively all files contained in a folder and its subfolders with Git LFS ?

I would like to do something like this :

git lfs tr         


        
相关标签:
2条回答
  • 2021-01-30 15:54

    This way you can track any folders with any subfolder. You want to recursively track folders with "n" number of folder and "m" number of sub-folders. I would recommend doing it this way.

    1. Find all the files extensions using following command
    find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u  
    
    1. and then creating a .gitattribute file and adding git lfs track syntax. This command generates that for you, it tracks all the files and its extensions and creates lfs tracking syntax.
    find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u | awk '{print $1" filter=lfs diff=lfs merge=lfs -text"}' | sed 's/^/*./'
    
    1. Copy paste output to the .gitattribute file and commit.

    It works for

    1. Any number of files and folder.
    2. Large repo with large number of small files which makes the repo size very big.
    3. Any number of folder and sub-folders.
    0 讨论(0)
  • 2021-01-30 16:03

    Use git lfs track "myfolder/**", with quotes to avoid the shell already expanding the pattern. All that the track command does is to write to .gitattributes, which in turn uses (almost) the same pattern matching rules as .gitignore, see the PATTERN FORMAT description.

    0 讨论(0)
提交回复
热议问题