Files
GitGuide/docs/git/base/关于版本控制.md
2021-03-18 17:06:57 +08:00

40 lines
2.0 KiB
Markdown

# 关于版本控制
## 简介
版本控制(`version control`),或称为修订控制(`revision control`)、源控制(`source control`),其作用是保存源代码、配置文件和工程文件的修改历史,保证开发人员能够定位错误、回滚版本
大致经历`3`个阶段:
1. 保存副本
2. 集中式修订控制(`centralized revision control`)
3. 分布式修订控制(`distributed revision control`)
最简单的版本控制方式就是备份每次修改后的文件,优点在于操作简单,缺点在于占用存储大,在大文件情况下非常耗时,也不利于多人同时开发
第二和第三种方式都是通过保存文件修改记录来进行版本控制
第二种是集中式修订控制,即设立服务器来保存源代码和所有人修改的记录,上传和回滚版本通过服务器进行
优点在于这样可以保证占用的存储大大减小,同时仅需上传和下载修改记录就能够进行版本上传和更新,减小操作时间,并且能够有效协调地理隔离下的多人开发;管理员能控制开发人员权限
缺点在于仅在中央服务器保存了所有的修改记录,一旦损坏无法修复; 无法在同一版本库中同时进行多方向开发
![](https://git-scm.com/book/en/v2/images/centralized.png)
第三种是分布式修订控制,同一个开发库可以进行多分支开发,客户端也保存了所有分支的修改记录
优点:多分支开发;相比于集中式修订控制,仅需在拉取其他开发人员的变更和自己的提交记录时需要连接服务器,所以一些常用操作更加快捷,比如提交记录,浏览历史和回退操作
缺点:增加了客户端开发库的体积;操作较复杂
![](https://git-scm.com/book/en/v2/images/distributed.png)
使用集中式修订控制方式的版本控制系统:`svn`
使用分布式修订控制方式的版本控制系统:`git`
## 相关阅读
* [Version control](https://en.wikipedia.org/wiki/Version_control)