19

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

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

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

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

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

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

3 回答 3

16

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


包含和排除

您可以将 Git LFS 配置为仅获取对象以满足 repo 某些路径中的引用,和/或排除 repo 的某些路径,以减少下载不使用的东西所花费的时间。

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

例子:

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

    这只会获取纹理文件夹中路径中引用的对象,以及图像文件夹中名为 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 对象,但排除其子文件夹之一中的对象。

于 2016-06-29T02:38:29.687 回答
5

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

导出 GIT_LFS_SKIP_SMUDGE=1

在克隆/拉取之前

于 2017-04-26T06:51:27.867 回答
1

git checkout patch (choose files to checkout)

我能想到的唯一方法是使用部分结帐

git checkout -p

它将允许您选择将手动签出的文件。

在此处输入图像描述

于 2016-04-02T17:41:03.067 回答