更新时间:2023-02-20 GMT+08:00
分享

概述

文档目的

基于CodeArts实践所编写,用于帮助已经掌握或想要掌握Git的开发者,更好的应用Git,以及更好的将Git与CodeArts结合应用。

Git概述

从狭义上来说,版本控制系统是软件项目开发过程中管理代码所有修订版本的软件,能够存储、追踪文件的修改历史,记录多个版本的开发和维护,事实上我们可以将任何对项目有帮助的文档交付版本控制系统进行管理。版本控制系统(Version Control Systems)主要分为两类,集中式和分布式。

集中式版本控制系统

集中式版本控制系统的特点是只有一台中央服务器,存放着所有研发数据,而其它客户端机器上保存的是中央服务器最新版本的文件快照,不包括项目文件的变更历史。所以,每个相关人员工作开始前,都需要从这台中央服务器同步最新版本,才能开始工作,如下图所示。

常见的集中式版本控制系统为CVS、VSS、SVN、ClearCase。

集中式版本控制系统的优点与缺点如下表所示。

表1 集中式版本控制系统描述

优点

缺点

  • 操作简单,使用没有难度,可轻松上手。
  • 文件夹级权限控制,权限控制粒度小。
  • 对客户端配置要求不高,无需存储全套代码。
  • 网络环境要求高,相关人员必须联网才能工作。
  • 中央服务器的单点故障影响全局,如果服务器宕机,所有人都无法工作。
  • 中央服务器在没有备份的情况下,磁盘一旦被损坏,将丢失所有数据。

分布式版本控制系统

分布式版本控制系统的特点是每个客户端都是代码仓库的完整镜像,包括项目文件的变更历史。所有数据分布的存储在每个客户端,不存在中央服务器。可能有人会问,我们公司使用Git分布式存储工具,也有“中央服务器”啊?其实,这个所谓的“中央服务器”仅仅是用来方便管理多人协作,任何一台客户端都可以胜任它的工作,它和所有客户端没有本质区别,如下图所示。

常见的分布式版本控制系统为Git、Mercurial、Bazaar、Bitkeeper。

分布式版本控制系统的优点与缺点如下表所示。

表2 分布式版本控制系统描述

优点

缺点

  • 版本库本地化,版本库的完整克隆,包括标签、分支、版本记录等。
  • 支持离线提交,适合跨地域协同开发。
  • 分支切换快速高效,创建和销毁分支廉价。
  • 学习成本高,不容易上手。
  • 只能针对整个仓库创建分支,无法根据目录建立层次性的分支。
分享:

    相关文档

    相关产品