使用正确的工具:Git LFS和Artifactory
在最近的一次谈话中,我与一位与我妻子共事的开发人员(她是一家优秀教育游戏公司的QA经理)进行了交谈,她与我分享了一个大多数游戏开发人员(可能)都会遇到的非常痛苦的问题:在Git中存储二进制资产。这是这个行业中每个人都面临的问题——不管你选择的是风投公司。
好吧,不只是实际上是游戏开发者,但任何拥有3D模型、图像、声音、视频和任何非文本内容的人(游戏邦注:如动画工作室、图像引擎制造商、网站等)都需要在你的版本控制系统中。
不可否认的是,只要有一点创造性的想法,你就可以让Git或任何其他的VCS Ok,正如Atlassian的优雅解释的那样尼古拉Paolucc.使用如下工具git-media,git-fat,git-bigstore而且git-annex你甚至可以让它易于管理。这些工具都有自己的方法来实现最终目标,并考虑到它们的优点和缺点。
问题是,Git是一个源代码控制系统是有原因的。它在管理资源方面非常出色。但是对于二进制呢?

源代码控制系统不利于二进制文件。
你会问为什么?下面是一个小列表:
- 首先也是最重要的一点——VCS不是一个存储库!它不能计算服务器上的索引,也不支持任何动态REST API,比如依赖项解析API。
- 版本不匹配。源文件根据其内容进行版本控制。vcs知道如何区分它们,并了解发生了什么变化。另一方面,二进制文件通常根据它们的名称进行版本控制。从VCS的角度来看,它们是不同的条目,每个条目都没有任何版本历史记录。
- 源代码控制知道如何搜索源代码。当然,最重要的搜索类型是内容搜索。然而,搜索二进制文件是不同的:最重要的是文件元数据、位置、文件名的结构,如果是存档工件,则是存档的内容。
另一个资产工具?请,不!
但是对我所有的资产使用一个服务器,源代码和二进制文件都非常方便——有人可能会说。
一旦我们学会了如何正确使用Git(这并不容易!),就有必要将它用于我们从服务器上需要的所有文件。
好消息!这些工具的最新功能是Git LFSGitHub通过分离blob本身和Git存储库(确实类似于其他工具,但更企业级)来努力解决这个问题(VCS repo中的二进制文件,还记得吗?)
Git LFS在repo中只存储一个文本指针,同时管理blob存储在哪里以及何时为您上传下载它们。
但这些斑点去哪了?GitHub将提供1GB的免费存储空间它的支持仍处于早期访问阶段;到目前为止,还没有其他产品级服务提供对Git LFS API的支持。
进入Artifactory
管理你的二进制文件一直是我们JFrog的专长,所以为什么不把它留给专业人士呢?
Artifactory 3.9带来了完全支持Git LFS以本地存储库的形式保存Git LFS客户端管理的所有blob,并具有Artifactory提供的开箱即用的所有强大功能AQL,用户插件,用户管理,复制当然强大的REST API.
在您组织的Artifactory服务器上没有存储配额,没有带宽限制,没有文件大小限制(尽管固有的Git处理超大文件的问题),甚至不停机.
最重要的是所有你的二进制文件都在一个你已经建立了具体工作流程的地方进行管理——而不是分布在多个难以跟踪的在线服务上。

访问我们的知识库并学习如何安装Git LFS与Artifactory在5分钟内工作.

