版本管理工具是干什么用的?
1.备份文件:
功能类似于u盘存储电影,版本管理工具用于备份存储代码文件。
2.记录历史:
每一次对文件的某一行进行修改的时间、修改人及历史版本都会进行存储,可回溯。
3.回到过去:
因每次提交都会备份,所以即使某个文件被删除,并且删除操作已提交给版本管理工具,该文件都可通过历史备份进行恢复。如时光机,可回到任意过去时刻的状态。
4.多端共享:
不同设备工作,可异地。
5.团队协作:
帮助解决团队协作中的冲突,并尽可能降低负面影响。
版本管理工具的历史
版本管理工具历史.png
cvs: 创于荷兰一大学实验室,是版本管理工具始祖,属集中式版本管理工具
svn: 创于某国外公司,为解决cvs的众多bug,有众多用户,当时的开源文件和很多公司在进行开发时均使用svn,属集中式版本管理工具。
**git: ** linux核心创造者创造了git,现是极客的主流版本管理工具,属分布式版本管理工具。
github: 程序员社区网站,程序员可托管自己的软件库,但是该托管需要基于git来完成。
集中式和分布式版本管理工具
集中式版本管理工具
如网盘,最新文件放至中心服务器,每当更新时从中心服务器拿出文件进行修改,修改后再同步至中心服务器。
优:只要能连上中心服务器,就可以把最新文件放至中心服务器。
劣:当不可以联网时,就不可更新文件,无法工作。同时,若中心服务器崩溃,所有文件和操作全部丢失。
例:cvs,svn
分布式版本管理工具
每个拥有版本库的人都可在不联网的情况下快速完成文件提交、查看记录和删除等操作。它不拥有中心服务器,每个支端都拥有完整代码库,各支端只要相互交换或推送新修改即可。但通常情况下,会有一个支端充当中心服务器,其作用只是用于方便交换修改,没有该中心依旧可以工作。分布式版本管理工具的效率要高于集中式版本管理工具。
优:在无联网条件的情况下也可对文件进行更新操作。当“中心服务器”或某支端代码库崩溃时,不会导致所有文件全部丢失,因每个支端都存有全套代码库。
例:git
参考:
http://www.imooc.com/learn/208(第1,2章)
http://www.zhihu.com/question/25577853
网友评论