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)、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。