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

时间:2016-04-02 16:55:45

标签: git git-lfs

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

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

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

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

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

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

3 个答案:

答案 0 :(得分:9)

我遇到了this man page,我没有经过测试,但希望它有所帮助:

包括和排除

您可以将Git LFS配置为仅提取对象以满足某些对象的引用 回购的路径,和/或排除回购的某些路径,以减少回购 你下载不使用的东西的时间。

在gitconfig中,将lfs.fetchinclude和lfs.fetchexclude设置为以逗号分隔的列表 在fetch中包含/排除的路径(根据gitignore的通配符匹配)。 只有与fetchinclude匹配且不与fetchexclude匹配的路径 将为他们提取物品。

示例:

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

    这只会获取textures文件夹中路径中引用的对象,以及 文件夹中名为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"

    仅在'媒体'中获取LFS对象。文件夹,但排除其中一个 子文件夹。

答案 1 :(得分:4)

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

  

导出GIT_LFS_SKIP_SMUDGE = 1

克隆/拉取之前

答案 2 :(得分:1)

<强> git checkout patch (choose files to checkout)

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

git checkout -p

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

enter image description here