Можно ли рекурсивно отслеживать все файлы, содержащиеся в папке и ее подпапках, с помощью Git LFS?

Я бы хотел сделать что-то вроде этого:

git lfs track myfolder/*

csa

Ответов: 2

Ответы (2)

Используйте git lfs track "myfolder / **"с кавычками, чтобы оболочка уже не расширяла шаблон. Все, что делает команда track, - это запись в .gitattributes, который, в свою очередь, использует (почти) те же правила сопоставления с образцом, что и .gitignore, см. ФОРМАТ ШАБЛОНА описание.

Таким образом, вы можете отслеживать любые папки с любой подпапкой. Вы хотите рекурсивно отслеживать папки с числом папок "n" и "m" количество подпапок. Я бы порекомендовал сделать это так.

  1. Найдите все расширения файлов, используя следующую команду
find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u  
  1. , а затем создание файла .gitattribute и добавление синтаксиса git lfs track. Эта команда генерирует это для вас, она отслеживает все файлы и их расширения и создает синтаксис отслеживания lfs.
find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u | awk '{print $1" filter=lfs diff=lfs merge=lfs -text"}' | sed 's/^/*./'
  1. Скопируйте результат вставки в файл .gitattribute и выполните фиксацию.

Работает на

  1. Любое количество файлов и папок.
  2. Большое репо с большим количеством маленьких файлов, что делает размер репо очень большим.
  3. Любое количество папок и подпапок.

2022 WebDevInsider