MrK*_*ish 5 linux git version-control gitlab git-lfs
我最近使用 Gitlab CE 设置了一个小型 Linux 服务器,以便测试 Git LFS 用于游戏开发。为了感受 Gitlab 和 LFS 工作流程,我在一个流行的游戏引擎中制作了一个测试项目,其中包含许多大型二进制资产。快速编写后,.gitignore我们.gitattributes能够将存储库推送到我们的服务器并将其克隆到另一台 PC,并适当处理我们的大型资产文件!从工作流程的角度来看,它肯定比我们的旧设置更好 - 使用 Git 处理代码,使用 SVN 处理资产。
然而,我们注意到的问题之一是清理我们的测试项目并从我们的服务器中删除不需要的 LFS 文件。看起来 Gitlab 将每个项目的所有 LFS 文件存储在一个存储目录中(在我们的例子中,我相信是这样/mnt/storage/git-lfs-objects)。最重要的是,LFS 存储目录中的所有文件都有短的十六进制名称,无法分辨文件是什么或它们属于哪个项目。即使从 gitlab 中删除我们的测试项目后,我们注意到 lfs 对象仍然存在!
那么,有没有办法从 Gitlab 服务器的存储目录中删除不需要的 LFS 对象/文件?如果我们的 lfs 对象存储在每个项目的子目录中,这似乎会非常简单和直观。如果 lfs 对象至少保留部分原始文件名,那就更好了!我们确实有兴趣在未来的游戏开发项目中使用 git-lfs 和 gitlab,但我不太喜欢将来自不同项目的数据混合到一个庞大目录中的想法,以及可能会导致我们的服务器出现大量“数据泄漏”的情况难以识别的文件。
那么,我在这里缺少 git-lfs 或 Gitlab CE 的某些方面吗?我无法想象没有办法从服务器中删除不需要的 lfs 对象,但我运气不佳!