Git LFS 跟踪文件夹递归

是否可以用 Git LFS 递归地跟踪包含在一个文件夹及其子文件夹中的所有文件?

我想这样做:

git lfs track myfolder/*
66111 次浏览

使用带引号的 git lfs track "myfolder/**",以避免 shell 已经扩展了模式。track命令所做的全部工作就是写入到 .gitattributes,而 .gitattributes又使用(几乎)与 .gitignore相同的模式匹配规则,参见 图案格式描述。

这样,您就可以跟踪具有任何子文件夹的任何文件夹。您希望递归地跟踪具有“ n”文件夹数和“ m”的文件夹 子文件夹的数量。我建议这样做。

  1. 使用以下命令查找所有文件扩展名
find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u
  1. 然后创建一个。Gittribute 文件和添加 gitlfs 跟踪语法。这个命令为您生成,它跟踪所有文件及其扩展名,并创建 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. 将粘贴输出复制到. gittribute 文件并提交。

对我有用

  1. 任意数量的文件和文件夹。
  2. 大的回购与大量的小文件,使回购的规模非常大。
  3. 任意数量的文件夹和子文件夹。