Git&SVN

1.Git和SVN之间的区别:
     (1).Git是分布式的,SVN是集中式;
     (2).SVN的工作区和版本库是截然分开的,而Git的工作区和版本库是如影随形的;
     (3).版本号:Git没有一个全局的版本号,而SVN有;
     (4) .版本库: SVN只能有一个指定中央版本库, Git可以有无限个版本库,或者每一个Git都是一个版本库;
     (5).Git是压缩后传输,svn是一个一个文件传输,所以git的网络流量比svn少很多;
     (6).检出:SVN可以将整个库检出到工作区,也可以将某个目录检出到工作区。但是Git只能全部检出,不支持按照目录进行的部分检出。
     (7).更新:
     在SVN中,因为只有一个中心仓库,所以所谓的远程更新,也就是svn update,通过此命令来使工作区和版本库保持同步。
     Git使用git fetch和git pull来完成远程更新任务。
     (8).提交:
     在SVN,当你提交你的代码时,它将直接记录到中央版本库。当你发现你的代码存在严重问题时,你已经无法阻止事情的发生。
     而Git的提交完全属于本地版本库的活动,而你只需”推”(git push)到主要版本库即可。

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

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

你可能感兴趣的:(SVN,git)