我的理解是:大型项目,一般都不可能由一两个人开发,需要多个人共同合作,一个人负责一个小部分的开发,最后组合在一起成为一个大型项目,在互联网时代,软件只有不断的更新迭代,修复bug,才能够在市场当中存活下来。而每次更新,不可能所有功能都需要更改,大部分时间只需要对一部分进行修改或更新,修改或更新完毕后,需要对原来的软件进行更新,在更新后可能会出现需求变更或者项目不稳定的现象,需要有能力将版本回退到之前的版本。
0×01.为什么用版本控制(git)
GIT 是一款免费的、开源的、分布式的版本控制系统。旨在快速高效地处理无论规模大小的任何软件工程。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。每一个GIT克隆都是一个完整的文件库,含有全部历史记录和修订追踪能力。其最大特色就是“分支”及“合并”操作快速、简便。支持离线工作,GIT是整个项目范围的原子提交,而且GIT中的每个工作树都包含一个具有完整项目历史的仓库。
GIT 本来是面向 Linux 操作系统开发的软件。在 Linux 平台上使用GIT非常简单,都是命令行模式。但对windows以及中文的支持不是很好。
相对于集中式版本控制系统的优点
没有“中央服务器”,每个⼈的电脑上都是一个完整的版本库,这样,你工作的时候, 就不需要联网了,因为版本库就在你自己的电脑上。既然每个认电脑上都有个完整的版 本库,那多个人如何协作呢?比如说你在自己电脑上改了文件A,你的同事也在他的 电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。和集中式版本控制系统相比,分布式版本控制系统的安全性要好很多,因为每个电脑里都有完整的版本库,某个人的电脑坏掉了不要紧,而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。