14

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

感谢您的见解。

4

6 回答 6

10

Git 本身可以管理任何类型的数据,只要它们不是太大或太多。
请参阅“带有大文件的 git ”(“大”的大小或数量)。

区分图片/图形不是 Git 本身支持的功能,但 Git 存储库托管服务可以扩展其 Web GUI 以提供此类支持。

GitHub 刚刚宣布(2014 年 6 月)“ ePSD Viewing & Diffing ”,扩展了他们的“图像查看和比较”(2011 年 11 月)

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

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

于 2014-06-16T20:17:44.653 回答
9

尽管这是一个非常自以为是的问题,但我会说不——至少对于 git 而言。

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

我认为使用 Dropbox 会更好。

于 2013-11-07T12:14:04.523 回答
4

那些回答“不”的人有很好的理由,但这并非不可能。

我成功地使用 GitHub 来管理一个由数百个 Illustrator 文件和 PDF 组成的开源项目(还有一些代码和文本,但相比之下这只是一个小问题)。存储库的大小约为 8GB。我做出如此疯狂的事情的原因是因为 Illustrator 文件是产品的核心,而不仅仅是与之配套的装饰性艺术品——它们是项目的来源——而且因为我想确保它保持打开状态资源。

有一些症结和需要注意的事情。我会建议:

  • 除非你非常熟悉 git,否则不要尝试这个。解决冲突和分支问题可能会变得非常棘手,您可能必须做一些非常神秘的事情才能让 repo 满意。没有人希望你了解 git 的每一个角落(我不确定一个理智的人可以),但你知道的足够多,你可以用谷歌搜索其余的。

  • 确保你在命令行上使用 git 很舒服。GUI 工具可能使您免受复杂性的影响,但它们也使您无法完全理解幕后发生的事情。一旦你有了这种理解,你就可以在 95% 的时间里自由地使用 GUI。

  • 尽可能避免分支。二进制文件不会像代码那样合并,因此将分支放在一起会变得混乱和费力。

  • 了解 git 的特定功能,这些功能可以帮助您管理 repo 的大小和复杂性:部分结账、标签git gc

  • 花时间提前计划。您可能会受益于将项目分成两个或多个 git 存储库,或者将其与另一个服务结合起来。

  • 如果您使用的是托管服务,请确保您知道它们对 repo 施加的限制。例如,GitHub 会抱怨文件超过 100MB。以下是他们推荐的二进制文件指南

于 2014-05-21T22:10:29.670 回答
1

不,我不建议使用 git、svn 等进行版本跟踪。几乎没有改动的 Adob​​e 文件版本之间会发生惊人数量的行变化 - 通过进行差异比较亲自查看。在 Illustrator 中打开本机文件压缩等选项时尤其如此。

通过明智地使用图层、链接和保存文件的里程碑版本,您将比 SVN 为您提供的原生 Adob​​e 文件更有效地使用存储。

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

于 2013-11-08T20:14:14.610 回答
0

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

于 2013-11-07T23:12:10.343 回答
0

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

它易于安装和使用,GitHubGitLabBitbucket等流行平台都毫无问题地支持它。

于 2018-10-20T08:49:00.480 回答