集中式(svn)
svn因为每次存的都是差异 需要的硬盘空间会相对的小一点 可是回滚的速度会很慢。从a100回滚a99需要打一次补丁,因为存储的是项目版本之间的差异。从a100回滚到a1需要99次补丁。速度不是那么的快。svn a1到a2之间保存的是版本的差异,,需要的内存空间小一点 可是回滚速度慢。优点: 代码存放在单一的服务器上 便于项目的管理缺点: 服务器宕机: 员工写的代码得不到保障 服务器炸了: 整个项目的历史记录都会丢失
分布式(git)
git每次存的都是项目的完整快照 需要的硬盘空间会相对大一点 (Git团队对代码做了极致的压缩 最终需要的实际空间比svn多不了太多 可是Git的回滚速度极快)用了去中心化的特点(类似于区块链),完全不需要中央处理器。每台电脑都是一个处理器。公司内部开发可以完全不要处理器,自己搞内网服务器。 但是如果有bug改不了,需要其他公司的大佬协助,那么就需要将代码放在远端仓库github中,这时候就需要给其他公司的大佬开启权限去操作,再去传上去。存储的是索引,不是项目版本与版本之间的差异。需要的存储空间很少做了压缩,可以存储整个历史记录。git每次都是存的是项目的完整快照 就是索引。 所需要的存储空间大一点 但是做了压缩,多不了多少空间。但是回滚速度特别快。 优点:1.断网的情况下也可以进行开发,因为版本控制在本地进行。 使用 github进行团队协作哪怕 github挂了每个客户端保存也是完整的项目。分布式的中央处理器github也可以作为客户端。优点: 完全的分布式缺点: 学习起来比SVN陡峭