Git & SVN

傅乐湛
2023-12-01

1.Git和SVN之间的区别

    • Git是分布式的,SVN是集中式;

    • SVN的工作区和版本库是截然分开的,而Git的工作区和版本库是如影随形的;

    • 版本号:Git没有一个全局的版本号,而SVN有;

    • 版本库:SVN只能有一个指定中央版本库,Git可以有无限个版本库,或者每一个Git都是一个版本库;

    • Git是压缩后传输,svn是一个一个文件传输,所以git的网络流量比svn少很多;

    • 检出:

         SVN可以将整个库检出到工作区,也可以将某个目录检出到工作区。但是Git只能全部检出,不支持按照目录进行的部分检出。

    • 更新:

         在SVN中,因为只有一个中心仓库,所以所谓的远程更新,也就是svn update,通过此命令来使工作区和版本库保持同步。

         Git使用git fetch和git pull来完成远程更新任务。

    • 提交:

         在SVN,当你提交你的代码时,它将直接记录到中央版本库。当你发现你的代码存在严重问题时,你已经无法阻止事情的发生。

         而Git的提交完全属于本地版本库的活动,而你只需”推”(git push)到主要版本库即可。

 

2.SVN优缺点

2.1 SVN优点

    • 管理方便、逻辑明确,符号一般人思维习惯;

    • 易于管理,集中式服务器更能保证安全性;

    • 代码一致性非常高;

    • 适合开发人数不多的项目开发。

2.2 SVN缺点

    • 服务器压力太大,数据库容量暴增;

    • 如果不能连接到服务器上,基本上不可以工作,就不能提交、还原、对比等等;

    • 不适合开源开发,但是一般集中式管理的有非常明确的权限管理机制,可以实现分层管理,从而很好的解决开发人数众多的问题。

 

3.Git优缺点

3.1 Git优点

    • 适合分布式开发,强调个体;

    • 公共服务器压力和数据量都不会太大;

    •  速度快、灵活;

    • 任意两个开发者之间可以很容易的解决冲突;

    • 离线工作。

3.2 Git缺点

    • 学习周期相对而言比较长;

    • 不符合常规思维;

    • 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

 类似资料: