Git LFS轨道文件夹递归

csa*_*csa 80 git git-lfs

是否可以使用Git LFS以递归方式跟踪文件夹及其子文件夹中包含的所有文件?

我想做这样的事情:

git lfs track myfolder/*
Run Code Online (Sandbox Code Playgroud)

ssc*_*rth 112

使用git lfs track "myfolder/**"带引号以避免shell已经扩展模式.track命令执行的所有操作都是写入.gitattributes,而后者又使用(几乎)相同的模式匹配规则.gitignore,请参阅PATTERN FORMAT描述.

  • 啊,你可能是shell扩展的受害者,即`myfolder/**`在被传递给Git之前被shell扩展了.我已经更新了我的答案以添加引号,这应该可以解决这个问题. (14认同)
  • 我不得不使用`git lfs track“ myfolder / ** / *”来使其工作。 (4认同)
  • `.gitattributes` 不遵循(全部)与上述 git-scm 链接记录的相同模式匹配规则,否则“myfolder/**”可以替换为“myfolder/”,与语句“foo/ 将匹配 a目录 foo 及其下面的路径”。我认为(即未经证实)“myfolder/”在“.gitignore”中工作,因为忽略进程通过文件系统下降,在匹配处停止,但“.gitattributes”根据预先存在的列表进行检查。如果您发现不同,请添加注释,并使用 git/git-lfs 版本来扭转这一情况。 (3认同)
  • 是的,这对我有用,根据评论也适用于其他人。如果您使用的是 Windows,请注意该命令必须从 Git Bash 使用,而不是从 `cmd`。 (3认同)
  • 我在 MacOS 上使用不带引号的 `had to use git lfs track myfolder/**/*` (3认同)
  • 实际上只是测试了它,看来帮助中心文章不正确,并且您想使用 `git lfs track "myfolder/**"` 正如这个答案所建议的。更多详细信息和验证步骤可以在[此答案](/sf/answers/3811646891/)中找到。 (2认同)