1 . 版本控制系统
版本控制系统是一种记录若干文件内容变化,便于将来修订特定版本或者还原部分文件的系统。在日常的软件开发中,采用版本控制系统来管理的话,可以将项目回溯到之前的某个状态,可以对比文件的变化细节,查找出哪个工程师在哪个时间节点修改了哪些内容,或者是哪个工程师在提交代码后,解决了哪些问题。
2 . 版本控制系统都有哪些?
一般有两种:集中式的版本控制系统(SVN、CVS等)、分布式的版本控制系统(Git等)
集中式的版本控制系统
分布式的版本控制系统
3 . 不同版本控制系统的差异化?
· 类似于SVN等集中式的版本控制系统,都存在一个单一的集中管理服务器,保存所有文件的修订版本,所有的开发人员通过客户端连接到这台服务器,得到代码或者上传代码。显而易见,如果中央服务器出现单点故障,那么在这一个小时内,任何人都无法提交更新,没有办法协同工作,如果中央服务器没有对文件做备份,也可能存在数据丢失、项目的历史纪录无法知道等严重情况出现。
· 类似于Git的分布式版本控制系统,没有所谓的”中央服务器“,不需要联网,因为每个人的电脑都是完整的版本库,比如,你在自己的电脑上修改了文件之后,你的同事也在自己的电脑上修改了文件,两人可以将自己的修改互相推送给对方。因此即使某个人的电脑出现问题,也不会影响。但是在实际使用的时候,还是会使用一台电脑来”充当“”中央服务器“,仅仅是为了交换修改,而并不是真正的服务器。
4 . 用哪个?
其实,Git等分布式版本控制系统的强大之处在于分支管理、在于不依赖网络、在于版本号、在于容灾等。优势还是挺大的,但是工具终归是工具,成事在人,不管用哪个工具,只要完成了”版本控制“这个核心任务,就是好工具。