这是情况。临时分析存储库,每个单独的分析都有一个目录。每个目录都包含一个与一个或多个数据文件相连的脚本,这些数据文件具有不同的格式和不同的(有时相当大)大小。没有数据的脚本通常是无用的,所以我们想存储数据文件。另一方面,有时查看脚本而不被迫下载相关数据文件(以确定某些分析是如何进行的)很有用。
我们绝对不想将数据存储在单独的存储库中(运行时问题、将脚本与数据文件相关联等)
分析了什么:
我想到的想法是,从存储库中提取或克隆某些位置或某些文件(即 >> 50 MB)会很方便。只是不要传输不需要的数据。是否可以?
如果某些文件在后续提交中没有被触及,从未来推送的角度来看它们是不必要的。可能(甚至可以肯定)我对 git 的底层机制缺乏一定的了解。我将不胜感激。
git clone --no-checkout --filter=blob:limit=100m
当服务器最终实现它时,这实际上将允许仅获取小于给定大小的文件。
然后,您必须检出所有文件,但大文件除外。一个可能有效的简单策略是git rev-list --filter=blob:limit=100 | xargs,但我现在懒得测试它。
有关更多详细信息,请参阅此答案:如何仅克隆 Git 存储库的子目录?
混帐LFS
这是一个已经可以在 GitHub 和 GitLab 上使用的解决方案。
你只是在 LFS 中跟踪你的大 blob,然后在没有 LFS 的情况下克隆如何克隆/拉出一个 git 存储库,忽略 LFS?
GIT_LFS_SKIP_SMUDGE=1 git clone SERVER-REPOSITORY
Run Code Online (Sandbox Code Playgroud)
最后手动提取您可能需要的任何丢失的 LFS 文件:https : //github.com/git-lfs/git-lfs/issues/1351
git lfs pull --include "*.dat"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4100 次 |
| 最近记录: |