集中式(svn)

  1. svn因为每次存的都是差异 需要的硬盘空间会相对的小一点 可是回滚的速度会很慢。从a100回滚a99需要打一次补丁,因为
  2. 存储的是项目版本之间的差异。从a100回滚到a1需要99次补丁。速度不是那么的快。
  3. svn a1a2之间保存的是版本的差异,,需要的内存空间小一点 可是回滚速度慢。
  4. 优点:
  5. 代码存放在单一的服务器上 便于项目的管理
  6. 缺点:
  7. 服务器宕机: 员工写的代码得不到保障
  8. 服务器炸了: 整个项目的历史记录都会丢失

分布式(git)

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