版本控制工具 git与svn(分布式vs集中式)

版本控制:即记录一个或若干文件内容变化,以便将来查阅特定版本修订情况以及回溯的系统。

集中式–svn

SVN, 全名Subvision; 作为集中式版本控制工具,版本库集中存放在中央服务器,team里每个人work时从中央服务器下载代码,是必须联网才能工作。个人修改后然后提交到中央版本库;对比最早的版本控制工具–cvs,svn解决了cvs的不稳定性,现在是开源社区的主流集中式版本控制工具。

Subversion的特点:

1.每个版本库有唯一的URL(官方地址),每个用户都从这个地址获取代码和数据;

2.获取代码的更新,也只能连接到这个唯一的版本库,同步以取得最新数据;

3.提交必须有网络连接(非本地版本库);

4.提交需要授权,如果没有权限,提交会失败;

5.提交并非每次都能够成功。如果有其他人先于你提交,会提示“改动基于过时的版本,先更新再提交”;

6冲突解决是一个提交速度的竞赛:手快者,先提交,平安无事;手慢者,后提交,可能冲突.(建议每次提交前update);

分布式–git

Git ,开源的分布式版本控制系统,是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

Git的特点:

1.Git中每个克隆(clone)的版本库都是平等的。你可以从任何一个版本库的克隆来创建属于你自己的版本库,同时你的版本库也可以作为源提供给他人。

2.Git的每一次提取操作,实际上都是一次对代码仓库的完整备份。提交完全在本地完成,无须别人给你授权,你的版本库你作主,并且提交总是会成功。

3.甚至基于旧版本的改动也可以成功提交,提交会基于旧的版本创建一个新的分支。

4.Git的提交不会被打断,直到你的工作完全满意了,PUSH给他人或者他人PULL你的版本库,合并会发生在PULL和PUSH过程中,不能自动解决的冲突会提示您手工完成。

5.冲突解决不再像是SVN一样的提交竞赛,而是在需要的时候才进行合并和冲突解决。


优缺点对比(面试常见)

SVN优点:
1、 管理方便,逻辑明确,符合一般人思维习惯。
2、 易于管理,集中式服务器更能保证安全性。
3、 代码一致性非常高。
4、 适合开发人数不多的项目开发。
缺点:
1、 服务器压力太大,数据库容量暴增。
2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。
3、 不适合开源开发(开发人数非常非常多)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。

Git优点:
1、适合分布式开发,强调个体。
2、公共服务器压力和数据量都不会太大。
3、速度快、灵活。
4、任意两个开发者之间可以很容易的解决冲突。
5、离线工作。
缺点:
1、学习周期相对而言比较长。
2、不符合常规思维。
3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

总结:

工具没有好坏,只有适不适合;集中式在传统的企业团队开发里优势明显(推广成本,安全性),而分布式面向开源项目,或者工作机制比较自由的团队,个人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值