使用正确的工具:带Artifactory的Git LFS

我妻子是一家优秀教育游戏公司的QA经理,在最近的一次谈话中,她与我分享了大多数游戏开发者(可能)都会遇到的一个非常痛苦的问题:在Git中存储二进制资产。这是这个行业中每个人都要面对的问题——不管你选择哪种风投。

好吧,不只是但任何拥有3D模型、图像、声音、视频以及任何非基于文本的内容(游戏邦注:如动画工作室、图像引擎制造商、网站等)的人,都必须加入你的版本控制系统。

不可否认,只要有一点创造性的思维,你就可以把Git或任何其他VCS做得很好,正如Atlassian的优雅解释的那样尼古拉Paolucc。使用工具git-mediagit-fatgit-bigstoregit-annex你甚至可以让它变得易于管理。这些工具中的每一个都有自己实现最终目标的方法,需要考虑它们的优点和缺点。

问题是,Git作为一个源代码控制系统是有原因的。它在管理资源方面非常出色。但是对于二进制文件呢?

GIT LFS你做错了

源代码控制系统对二进制文件不利。

你会问为什么?这里有一个小清单:

  • 首先,VCS不是存储库!它不能在服务器上计算索引,也不支持任何动态REST API,比如依赖项解析API。
  • 版本不匹配。源文件根据其内容进行版本控制。vc知道如何区分它们,并了解发生了什么变化。另一方面,二进制文件通常按其名称进行版本控制。从VCS的角度来看,它们是不同的条目,每个条目都没有任何版本历史。
  • 源代码控制知道如何搜索源代码。当然,最重要的搜索类型是按内容搜索。但是,搜索二进制文件是不同的:最重要的是文件元数据、位置、文件名的结构,如果是存档工件,则是存档的内容。

另一个资产工具?请,不!

但是使用一个服务器来存放我所有的资产,包括源代码和二进制文件是非常方便的——有人可能会说。
一旦我们学会了如何正确使用Git(这并不容易!),用它来处理我们从服务器上需要的所有文件就变得有意义了。

好消息!这些工具的最新添加是Git LFSGitHub通过分离blob本身和Git存储库(实际上,类似于其他工具,但更企业级)来解决这个问题(VCS仓库中的二进制文件,还记得吗?)我们的ci克隆了这个回购

Git LFS只在repo中存储一个文本指针,同时管理blob存储的位置和何时上传下载它们。

这些斑点去了哪里?GitHub将提供1GB的免费存储空间它的支持仍然处于早期访问阶段;到目前为止,还没有其他生产级服务提供对Git LFS API的支持。

进入Artifactory

欢迎Artifactory

管理二进制文件一直是JFrog的专长,所以为什么不把它留给专业人士呢?

人工3.9带来完全支持Git LFS以本地存储库的形式保存Git LFS客户端管理的所有blob,并具有Artifactory提供的开箱即用的所有强大功能AQL用户插件用户管理复制当然还有强大的REST API

在您的组织的Artifactory服务器上没有存储配额,没有带宽限制,没有文件大小限制固有的Git处理超大文件的问题),甚至不停机

最重要的是所有您的二进制文件管理在一个地方,你已经建立了具体的工作流程,而不是分布在多个难以跟踪的在线服务。

在青蛙

访问我们的知识库,学习如何在5分钟内设置Git LFS以与Artifactory一起工作