3. Git 和 SVN 的优缺点?

Git 是分布式版本控制系统,SVN 是集中式版本控制系统。

1)SVN 的优缺点

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

2)Git 优缺点

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

所以,很多公司的开发团队使用 Git 作为版本管理,而产品团队使用 SVN 。