19
社区成员
发帖
与我相关
我的任务
分享
不知道大家对上面这张图熟悉吗,没错,就是不用版本控制,然后对某个文件不断做修改之后,改吧改吧之后就是这样的结果,那有什么方法可以终结这个吗,请使用Git(最先进的分布式版本控制系统,没有之一)
下面这张表就很形象了,每个版本更改都会记录文件名、用户、说明、日期等信息,可以让人很清晰的定位什么时候更改了什么,以及是谁更改的
版本 | 文件名 | 用户 | 说明 | 日期 |
---|---|---|---|---|
1 | service.doc | 张三 | 删除了软件服务条款5 | 7/12 10:38 |
2 | service.doc | 张三 | 增加了License人数限制 | 7/12 18:09 |
3 | service.doc | 李四 | 财务部门调整了合同金额 | 7/13 9:51 |
4 | service.doc | 张三 | 延长了免费升级周期 | 7/14 15:17 |
刚开始是因为Linus创建了开源的Linux,随着Linux系统不断发展,代码库之大让Linus很难继续通过手工方式管理,当然你可能会说,没有免费的版本控制系统吗,当时有CVS和SVN存在了,但是这些集中式的版本控制系统不但速度慢,还需要联网才能使用,当然也有更好用的商业的版本控制系统,但那是付费的,和Linux的开源精神不符,在和BitMover公司闹掰了之后,Linus创建了Git分布式版本控制系统
接下来,我们谈谈集中式版本控制和分布式版本控制的一些区别,还是先上图
从图中,我们可以看到有一台中央服务器用于存储代码库,大家干活的时候先从中央服务器拉取最新版本代码,然后开发完了,再推送过去,整个过程都是需要联网的
下面再上分布式版本控制的图
我们可以看到并不存在中央服务器,每个人电脑里都有完整的版本库,如果某个人的电脑坏了,随便从其他人那里复制一个就可以,中央服务器如果坏了,所有人都没法干活儿,其实分布式版本控制系统通常也有一台充当"中央服务器"的电脑,但这个服务器的作用仅仅是用来方便大家交换修改,没它照样干活
当然,Git的优势不仅仅是不需要联网这么简单,在分支管理等功能上,把SVN等远远甩在后面