使用源代码管理来管理图形文件(例如PSD和AI文件)是否有意义

时间:2013-11-07 11:53:38

标签: git version-control mercurial photoshop adobe-illustrator

当然像Git,(Mercurial,SVN等)的源代码控制工具...... 可以很好地管理源代码。但我想知道,做这些 工具在用于存储时为开发人员提供了任何优势 PhotoShop PSDs和Illustrator AI文件等文件的副本? 将这些工具与这些文件一起使用是否有意义? 我是否会在存储库中存储的数量少于存储的总和 所有这些文件的文件大小?即使是文件格式 这些文件只是机器可读的,我希望如此 在这些应用中,特别是在处理时 矢量而不是光栅图形,一小部分 这些文件会改变,其余的大部分都会改变 会保持不变。

感谢您的见解。

6 个答案:

答案 0 :(得分:9)

虽然这是一个非常自以为是的问题,但我会说不 - 至少对于git来说。

  • Git不是作为存储解决方案创建的。
  • 无法合并图像文件。
  • 因此,分支没有意义 - 如果将这些分支合并在一起的唯一方法是选择哪个版本是正确的,那么您最好立即替换该文件。
  • Git GUI工具不如控制台,并不简单。你想教你的艺术团队提交和推送之间的区别是什么?
  • 当您结帐git repo时,从初始提交开始,检查所有文件的整个历史记录。如果你对二进制文件工作的时间足够长,那么这个大小就会变得很大。
  • 许多git托管网站(例如github)对单个文件大小有限制。

我认为你用Dropbox会好得多。

答案 1 :(得分:7)

Git本身可以管理任何类型的数据,只要它们不是太大或太多 请参阅“git with large files”(大小或数字中的“大”)。

差异化图片/图形不是Git原生支持的功能,但Git repo托管服务可以扩展其Web GUI以提供此类支持。

GitHub刚刚宣布(2014年6月)“ePSD Viewing & Diffing”,扩展了他们的“image viewing and diffing”(2011年11月)

  

您的存储库中的任何PSD资源都将被视为图像,这意味着您可以内联查看它们并使用我们的三种图像视图模式来查看提交中的更改。

https://cloud.githubusercontent.com/assets/2546/3165594/55f2798a-eb56-11e3-92e7-b79ad791a697.gif

答案 2 :(得分:3)

那些回答"不"有很好的理由,但这不可能。

我成功使用GitHub来管理由数百个Illustrator文件和PDF组成的an open source project(以及一些代码和文本,但相比之下,这只是一个小小的障碍)。回购约为8GB。我之所以如此疯狂,是因为Illustrator文件是产品的核心,而不仅仅是装饰艺术品 - 它们是项目的 - 因为我想确保它保持开源。

有一些关键点,需要注意的事项。我建议:

  • 除非你非常熟悉git,否则不要试试这个。解决冲突和分支问题可能会变得非常棘手,你可能不得不做一些非常神秘的事情来让repo高兴。没有人希望你知道git的每一个角落(我不确定一个理智的人可以),但是知道你可以谷歌其余的。

  • 确保您在命令行上使用git很舒服。 GUI工具可以保护您免受复杂性的影响,但它们也会阻止您完全理解幕后的内容。一旦掌握了这些理解,您就可以在95%的时间内自由使用GUI。

  • 尽可能避免分支。二进制文件没有合并代码的方式,因此将分支组合在一起可能会变得混乱和费力。

  • 了解git的具体功能,可帮助您管理回购的大小和复杂程度:部分结帐,代码,git gc

  • 提前计划时间。您可能会将项目分成两个或多个git repos,或者将其与另一个服务相结合,从中受益。

  • 如果您正在使用托管服务,请确保了解它们对回购的限制。例如,GitHub会抱怨超过100MB的文件。 Here are their recommended guidelines for binaries

答案 3 :(得分:1)

不,我不建议使用git,svn等进行版本跟踪。令人惊讶的线条数量将在几乎没有改变的Adobe文件版本之间发生变化 - 通过差异比较看看自己。在Illustrator中启用本机文件压缩等选项时尤其如此。

通过明智地使用图层,链接和保存里程碑版本的文件,您可以更有效地使用存储,而不是SVN可以为您提供原生Adobe文件。

我能想到的一个例外是基于XML的文件,比如纯矢量SVG。

答案 4 :(得分:0)

如果您只需要使用简单的UI进行简单版本管理,Subversion可以很好地管理这些文件。它具有良好的GUI支持(例如SmartSVN或TortoiseSVN)和shell集成。选择性地仅检出您需要的文件也更容易。

答案 5 :(得分:0)

对于所有人都指出文件大小是一个大问题,Git-LFS可以解决这个问题。

易于安装和使用,GitHubGitLabBitbucket等流行的平台都支持它。