SVN & Git

虽然 git 相对于 SVN 的优越性显而易见,但是一般对员工而言,用什么取决于就职时公司用的是什么。我有幸主导过团队从 SVN 向自建 git 服务迁移。

SVN 与 Git 优缺点对比

SVN 优点

  • 管理方便,逻辑明确,符合一般人思维习惯。
  • 易于管理,集中式服务器更能保证安全性。
  • 代码一致性非常高。
  • 适合开发人数不多的项目开发。

SVN 缺点

  • 服务器压力太大,数据库容量暴增。
  • 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。
  • 不适合开源开发。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。

Git 优点

  • 适合分布式开发,强调个体。
  • 公共服务器压力和数据量都不会太大。
  • 速度快、灵活。
  • 任意两个开发者之间可以很容易的解决冲突。
  • 离线工作。

Git 缺点

  • 新手学习周期相对而言比较长。
  • 对于刚入门的人来说不符合常规思维。
  • 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

如何部署 git 服务

以前曾在公司内部的 Mac 服务器上部署 Gitblit 供团队使用,现在公司用的是阿里云的 codeup 服务,但是我还是用 docker 在自己的云服务器上部署了一个 gitea 来作为 github 的镜像,比之前用的 Gitblit 更加完善好用。部署方法详见这篇文章: