简短的问题:是否可以配置 git 以便常规 git pull 会忽略某些文件?
问题描述:我有一个包含一些大数据文件的存储库(使用 git lfs 存储)
虽然一些处理数据文件的开发人员需要这些文件的更新版本,但其他开发人员需要这些文件,但不一定是最新版本。
他们确实需要更新的代码版本。并且数据文件与代码位于同一存储库中。
我想设置常规拉取不会更新数据文件的方式。
- 我知道可以在不从 LFS 下载文件的情况下进行拉取,但这会用指针文件替换文件,我需要以前版本的文件。
我遇到了这个手册页,我没有测试,但希望它有帮助:
您可以将 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 对象,但排除其子文件夹之一中的对象。
如果你想忽略所有git lfs 文件:
导出 GIT_LFS_SKIP_SMUDGE=1
在克隆/拉取之前