几乎所有项目[61],都要使用版本控制,它究竟有什么优势呢?
假设你使用的编辑器,不支持删除,那你就得特别的谨小慎微,甚至是如履薄冰:因为你打错了字没法删除
放松下来,目前我所接触的所有编译器中,还没有变态到这种程度的。
如果编译器提供了删除功能,却没有 undo,那可能会更可怕:如果你不小心选中了全部文字,手一抖……因为不能 undo,你知道,如果此时不小心按下 delete,你就得从头来过……你会为可能产生的后果而发抖
然而,命运总在你不想被打扰的时候来敲你可爱的门,在你手抖的刹那,你真的鬼使神差的按了下那个可怕的键……你的选择只能是重新来过或者放弃……
你会比任何时候都希望时间倒流一秒钟
还好,几乎所有的编译器,都会帮你回到一秒种、一分钟、一小时……之前
假设你想回到一天之前?一觉醒来,你突然想起,有一部分内容其实应该保留下来……但是编辑器在重启之后,就不能够再帮你回到以前的任何时间……
这种情况下,版本控制才是你的救命稻草
传统的版本控制系统,需要在服务器上搭建一个中央仓库,所有成员都是客户端,具有不同的权限。这种方式适应大教堂开发模式,但比较依赖网络,且不够灵活,使用比较广泛的有cvs、svn等
而分布式版本控制系统,则不需要中央仓库,所有的成员都可以完全掌控己方的版本控制系统,通过多种方式灵活的协作。这种方式适应集市开发模式,典型的代表是git