svn是集中式版本控制系统;git是分布式版本控制系统。
svn就是所有人修改的都是服务器上的程序,如果有人修改了同样的部分,那就冲突了。所以呢,一般团队会约定,对于公共部分的程序,尽量标注出开发人员特有标识,又或者A从上添加,B从下添加。
git就是开发人员创建自己的分支,这个分支就相当于将源码copy一份在本机上,之后修改的都是本地的代码,可随时拉取服务器的代码进行同步,git可创建无数分支,开发人员只需将自己修改的代码提交就可以了,这样冲突的几率会小很多。
SVN | GIT |
直接与服务器进行交互,易冲突 | 将项目缓存在本地再推送到服务器,不易冲突 |
在联网的情况下工作 | 可不联网开发 |
旨在项目管理 | 旨在代码管理 |
适用于多项目并行开发 | 适用于单项目开发 |
适用于企业内部,由项目经理协调多个项目统筹开发 | 适用于通过网络多人开发同一项 |