是否有可能git lfs pull忽略一些文件/文件夹?

Oph*_*tan 14 git git-lfs

简短的问题:是否可以配置git,以便常规git pull将忽略某些文件?

问题描述:我有一个包含一些大数据文件的存储库(使用git lfs存储)

虽然一些处理数据文件的开发人员需要这些文件的更新版本,但其他开发人员需要这些文件,但不一定需要最新版本.

他们确实需要更新的代码版本.数据文件与代码位于同一个存储库中.

我想设置常规拉不会更新数据文件的方式.

  • 我知道可以在不从LFS下载文件的情况下进行拉取,但是这将用指针文件替换文件,我需要以前版本的文件.

Vin*_*tin 10

我遇到了这个手册页,我没有测试,但希望它有所帮助:


包括和排除

您可以将Git LFS配置为仅提取对象以满足存储库的某些路径中的引用,和/或排除存储库的某些路径,以减少您下载不使用的内容所花费的时间.

在gitconfig中,将lfs.fetchinclude和lfs.fetchexclude设置为逗号分隔的路径列表,以便在fetch中包含/排除(根据gitignore进行通配符匹配).只有fetchinclude匹配且fetchexclude不匹配的路径才会为它们提取对象.

例子:

  • git config lfs.fetchinclude "textures,images/foo*"

    这将仅获取textures文件夹中路径中引用的对象,以及images文件夹中名为foo*的文件

  • git config lfs.fetchinclude "*.jpg,*.png,*.tga"

    仅获取JPG/PNG/TGA文件,无论它们在存储库中的何处

  • git config lfs.fetchexclude "media/reallybigfiles"

    不要获取文件夹media/reallybigfiles中引用的任何LFS对象,而是获取其他所有内容

  • git config lfs.fetchinclude "media"
    git config lfs.fetchexclude "media/excessive"

    仅在"media"文件夹中获取LFS对象,但不包括其子文件夹中的LFS对象.

  • 你可以这样做: `git clone --config lfs.fetchinclude='/path/to/includes/**/*' repo.git` (4认同)
  • 注意:如果你要重新克隆一个存储库,你可以使用`git lfs clone repo.git --include ="includes"--exclude ="excludes"` (2认同)
  • 这个答案似乎已经过时了。我得到:“警告:‘git lfs clone’已被弃用,并且不会使用‘git clone’的新标志进行更新” - 有没有办法用普通的‘git clone’排除? (2认同)

eiT*_*aVi 5

如果你想忽略所有git lfs 文件:

导出 GIT_LFS_SKIP_SMUDGE=1

在克隆/拉取之前


Cod*_*ard 0

git checkout patch (choose files to checkout)

我能想到做这样的事情的唯一方法是使用部分结帐

git checkout -p
Run Code Online (Sandbox Code Playgroud)

它将允许您选择手动检出哪些文件。

在此输入图像描述