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

问题描述 投票:12回答:3

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

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

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

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

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

  • 我知道可以在不从LFS下载文件的情况下进行拉取,但是这将用指针文件替换文件,我需要以前版本的文件。
git git-lfs
3个回答
9
投票

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


包括和排除

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

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

Examples:

  • 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对象。

4
投票

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

export GIT_LFS_SKIP_SMUDGE = 1

在克隆/拉取之前


1
投票

git checkout patch (choose files to checkout)

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

git checkout -p

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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.