不论你是设计师还是开发者,又或者兼而有之,几个不同版本的文件同时存在于你的电脑当中是一件非常常见,且非常普遍的事情。但是问题在于,随着项目的推进,文档的版本更新非常快,如果没有系统的管理方法,最终的结果往往是陷入混乱。
而专门用来帮你管控版本的方法或者控制优先级的体系,都可以称为版本控制。对于设计项目而言,版本控制应该是整个体系中不可忽视的组成部分,如果没有,混乱常常会随之而来。
从设计师的角度来看
改稿似乎是设计师的宿命。随着产品需求或者客户需求的改变,即使是到了整个设计开发的最终阶段,设计稿都可能有若干个不同的版本或者变化。这简直是设计绕不过的大坑。不过在绝大多数的情况下,我们打开某个文件夹看到的是这样的情况:
XX项目视觉稿.PSD XX项目视觉稿新版.PSD XX项目视觉稿最新版.PSD 未标题-1.PSD XX项目视觉稿最终版.PSD 我已经不想做了.PSD XX项目视觉稿这个一定是最终版.PSD XX项目视觉稿最终的最终版.PSD 这稿坚决不改了就这么着吧.PSD 这个标题是凑字数的.PSD
如果有了版本控制,这种坑爹的状况就不会发生了。面对这十来个标题已经没法吐槽的PSD文档,客户、同事和自己应该都处于懵逼的状态吧。真要打开某 个阶段特定的文档,唯一的办法是将所有的都打开,一个一个筛选,然后在Photoshop 的不同的Tab之间来回翻找,直至彻底迷失,或者惊喜地找到。随着项目的结束,这个项目的文件夹和这堆分不清楚的文档会被深深地雪藏在硬盘深处,直至偶然 记起或者需要查看,然后痛苦的再次全部打开找某一稿。
版本控制的价值
所以,对于设计师而言,版本控制的价值是不言而喻的。不过我们传统意义上的版本控制更多还是针对开发者而非设计师,但是两者的版本控制在功能上共通的地方非常多。那么它都有哪些好处呢?
不再担心正在处理的文档被覆盖
你所需要做的唯一的事情,就是保存你手头正在处理的文档。可是如果万一这个版本出问题了怎么办?那么你需要的是之前某个尚可运行或者图层未曾合并的某个对的版本。版本控制工具压倒性保存机制能保护之前的版本不被覆盖,如果你不做版本控制,那么这个时候就只能从头再来了。
团队可以安心分享最新版的文档
有版本控制系统之后,团队可以更加轻松有序地分享、共享、使用这个项目最新的文档了。这个时候的版本控制,能够有效的防止团队成员使用老版本的文档,或者是被别人修改过的、甚至已经放弃的错误文档。它使得整个团队的文档系统更加有组织性,并且降低团队范围内的错误。
问责和用户跟踪
版本控制的另外一个重要的功能就是能够跟踪不同人对于文档的修改和调整。开发过程中,当用户修改了某些文档,并且上传了修改后的版本,借助版本控制 工具可以跟踪后续修改。这一点的重要性在于,如果后续发现问题了,可以追溯问题是从哪里开始出现的。在此基础上,你可以根据改变,来诊断问题。
沟通交流
在项目开发和设计过程中,团队其他成员对于文档所做的笔记和标记也同样很有帮助。比如,某个团队成员负责了项目中的4个任务,但是他的笔记里面只提 及了其中三个,其他的成员注意到这一点了,会去检查另外这个任务的完成进度,确保一切已经完成。这样的记录和交流机制能避免一些不必要的遗漏。
文档和文件夹的分支与合并
我们所说的分支,指的是用户选取某个文件夹或者文件,单独创建一个副本,这可以让开发者拿来单独测试,或者让设计师基于某个版本向特定方向单独设计出一个副本,并且对原有的文件不做破坏和修改。
一旦问题得到了解决,可以合并回原有的体系。这样的方式让团队的不同部分的成员可以针对特定的功能、模块或者区域进行开发、设计,互不影响。对于核心的功能而言,这样的开发方式尤其实用有效。在完成之后,在合并回来。这也是版本控制的范畴以内,并且能让项目推进的更快。
冲突与管理
当有多个人分工处理项目不同的区块的时候,就意味着你需要处理项目的多个不同的方位,在很多时候,冲突的发生几乎是必然的,功能区块之间是有配合 的,很少是彻底分离的,独立开发过程中出现冲突是很正常的。而版本控制的优势就表现出来了,你可以通过选取其中的一个路径来抵消冲突。
作为团队运作的时候,你可以通过版本控制来选取最佳路径,以最佳的方式来消解冲突。之后,经过优化的文档会更新出来,并且分发给团队的每个人,让大家进度保持一致。
文档内差别对比
不同的人为同一个项目同左,出现不同的版本几乎是必然的事情,这同时也意味着你必须要在这些不同的版本中找出差异,哪里有冲突,哪里有修改,哪里有问题,等等等等。
从人的角度上来看,要缩小范围是一件很难的事情。借助版本控制工具的可以将范围缩小到一个特定的范围内,再进行判定就简单多了。当然,文档内对比更多的还是针对开发文档和代码,而非设计文档。
版本控制让你省心也放心
和网站的内容管理系统相似,版本控制系统能够将项目的不同部分管理的井井有条,让你更加专注于项目本身,而不是在管理细节上焦头烂额。