我在编程项目中使用 git、版本控制、共享和协作取得了巨大成功,并希望在 photoshop .psd
、illustrator.ai
和 maya 项目中也能取得同样的效果。您可能知道,Maya 是一款出色的 3D 建模和渲染工具包,但它的项目保存方式有点像编程框架,有各种用于存放源图像和纹理等的目录。
在这方面使用 git 是行业惯例吗?在 github 上开源一部 3D 电影或一款游戏的 3D 文件将是一件了不起的事情!
显然,所有文件都只是数字,因此理论上 git 可以只更新 .jpegs 或 maya 二进制文件中已更改的部分,但您认为这实际上会导致数据损坏和撕裂吗?就像我说的,我想对 photoshop 和 illustrator 文件做同样的事情。
如果 git 不是一个选项,我还应该如何对 maya 和 adobe 项目进行版本控制、协作和开源?
答案1
需要记住的一点是,git 不适用于处理非常大的 repo 或文件。
这是一篇文章为什么选择 Facebook不是使用 git 进行版本控制。基本上 git 的扩展性不够好。
Github 对 git 的局限性有很好的解释这里:
git 几乎可以处理你交给它的任何文件(参见二进制差异)
Photoshop
使用 git 对 photoshop 文件进行版本控制应该没有问题。(假设它们相对较小)
玛雅
Maya 生成的项目可能太大,无法在 git 中很好地扩展。特别是如果您计划推送到 github 或 gitlab 等远程位置。
我认识的大多数使用 Maya 或类似软件的人,都将自己的作品保存在网络安装驱动器上,只与几个合作者共享。当某个版本准备发布时,它会被渲染并托管在 ftp 站点上。
其他资源
https://stackoverflow.com/questions/540535/managing-large-binary-files-with-git
答案2
我也遇到这个问题很久了。经过一番研究,我发现有几种方法可以控制图形资产的版本。有些方法需要你自己的服务器(有些需要你专门运行 Windows 服务器),有些可以托管在第三方服务器上。我最喜欢的(虽然不是完全令人满意)是时间线来自 Pixelnovel。
根据我的经验,您应该确保所有合作者都使用相同版本的软件(Timeline 和 PS/AI/Maya),旧版本的 PS 要求您运行旧版本的 Timeline,而该版本处理工作树的方式与更新版本不同。
我还使用常规 Subversion(无 GUI)对大型图形资产进行版本控制,我发现如果您习惯使用终端,那么它并不是那么糟糕。当然,合并、冲突等操作在二进制文件中是不可能的,但至少您可以通过结构化日志获得简洁的版本管理。此外,使用 SVN,您可以在使用文件时锁定它(Timeline 可以为您做到这一点)。
我不喜欢使用带有图形的 git(尽管我喜欢使用非二进制文件),并且 spuder 提出的观点非常有效。