版本控制系统简介
如果我们是程序员或者开发人员并在软件应用程序或者任何上工作,那么我们肯定需要一些版本控制系统来跟踪更改。
版本控制系统也称为SCM(源代码管理)工具或者RCS(修订控制系统)。
版本控件是一种方法或者类别的软件工具,有助于追踪代码中的更改,以便如果出现问题,我们可以在不同的代码版本中进行比较,并且可以轻松地恢复到以前的版本。
当多个开发人员连续工作或者更改源代码时,非常有用。
版本控制系统的优点
使用VCS,程序员可以查看项目历史记录,以了解以下详细信息:
- 代码中提出了哪些更改?
- 谁取得了代码的变化?
- 代码中的更改是什么时候?
- 为什么需要更改?
这是一个简单的图形插图,为我们提供了一个关于VCS实际工作原因的想法。
在上图中,具有浅蓝色球的第一线是主分支,这是源代码的主分支。
因此,v0.1和v0.2是创建的多个版本,以拍摄整个源代码的那种快照。
根据要求,我们已从Master分支中创建了多个分支,如释放,开发和修补程序分支。
多个开发人员可以通过创建不同的分支来在同一项目上工作,并在最后将其合并到主分支。
VCS的类型
有两种类型的VCS,即:
- 集中式控制系统(CVC),
- 分布式版本控制系统(DVC)。
首先,让我们快速浏览集中式控制系统。
集中式控制系统
集中式版本控制系统适用于客户端 - 服务器关系。
服务器将拥有所有信息
转移到客户。
我们可以说它是一种共享存储库,为开发人员提供最新代码。
所以开发人员每次都会在主副本上工作。
它与我们必须提取最新的代码副本一样简单,工作(提交更改),然后将代码推回存储库。
集中式VCS的主要缺点是它是单点故障。
如果中央服务器下降,那么我们就无法使用它。
如果你正在进行远程提交,那么它也需要时间。
我们需要互联网连接来提交任何更改。
例子:
- 开源 - >并发版本系统(CVS),Subversion(SVN)。
- 专有 - > Teamcity,Vault,IBM配置管理版本控制(CMVC)。
分布式版本控制系统
分布式版本控制系统具有集中式存储库以及所有开发人员都具有本地存储库副本。
开发人员可以同时在当地复制上工作。
它们不需要互联网连接来处理代码。
除了推动和拉动之外,它们可以在代码中完成所有内容。
如果中央服务器下降,那么由于本地存储库也不会影响。
例子:
- 开源 - Git,Mercurial,Bazaar。
- 专有 - Visual Studio团队服务,Plastic SCM。