阅读更多

版本控制系统

“代码”作为软件研发的核心产物,在整个开发周期都在递增,不断合入新需求以及解决bug的新patch,这就需要有一款系统,能够存储、追踪文件的修改历史,记录多个版本的开发和维护。于是,版本控制系统(Version Control Systems)应运而生,主要分为两类,集中式和分布式。

集中式版本控制系统

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

集中式版本控制系统的优点:

1.操作简单,使用没有难度,可轻松上手。

2.文件夹级权限控制,权限控制粒度小。

3.对客户端配置要求不高,无需存储全套代码。

集中式版本控制系统的缺点:

1.网络环境要求高,相关人员必须联网才能工作。

2.中央服务器的单点故障影响全局,如果服务器宕机,所有人都无法工作。

3.中央服务器在没有备份的情况下,磁盘一旦被损坏,将丢失所有数据。

分布式版本控制系统

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

分布式版本控制系统的优点:

1.版本库本地化,版本库的完整克隆,包括标签、分支、版本记录等。

2.支持离线提交,适合跨地域协同开发。

3.分支切换快速高效,创建和销毁分支廉价。

分布式版本控制系统的缺点:

1.学习成本高,不容易上手。

2.只能针对整个仓库创建分支,无法根据目录建立层次性的分支。

SVN vs Git

SVN和Git作为集中式和分布式版本控制系统的代表,都有广大的使用群体,两者的优缺点经常被比较。其实,工具对我们来说,就是帮助我们有效提升工作的效率与质量,最适合的就是最好的。我们引用几个开发场景来看看两个版本控制工具的适用范围。

场景一:

公司A,非纯技术开发,项目包含大量媒体设计文件,相关人员只需下载自己关注的部分文件;员工PC电脑配置不高,没有空间拷贝整个项目资料。

适用:SVN

分析:只需公司有一个足够大的服务器硬盘,员工本地只存储自己相关的文件夹,不必下载不想关的媒体文件,避免浪费文件传输时间。

场景二:

公司B,嵌入式底层开发,项目人员较多并且分布在两个城市,代码庞大;用分支管理多机种并行开发,机种间经常相互合并新特性,新patch。

适用:Git

分析:

1.Git有能力高效管理类似Linux内核一样的超大规模项目;

2.Git实现了离线开发、代码审核特性,解决了跨地域协同开发中代码质量和编码协同的问题;

3.分支管理功能强大,便于查询和追溯分支间的提交历史;

4.Git基于DAG(有向非环图)的设计比SVN的线性提交提供更好的合并追踪,避免不必要的冲突,提高工作效率

场景三:

公司C,某行业软件开发,包含敏感重要数据,代码仓库和版本发布权限掌握在客户手中,代码安全要求高,公司开发人员先将代码提交到本地仓库,只有在客户审核通过才能提交到发布仓库。

适用:Git

分析:

1.Git通过哈希加密保证数据的完整性,防止恶意篡改;

2.代码分布存储,异地容灾,保证数据安全;

3.Git支持团队成员自建本地版本库和分支,只有客户发出合并请求,开发人员才能提交代码,客户可以对提交说明、代码规范等方面逐一审核。

总结

不难看出,Git凭借自身的优势,完美解决了大多数公司对版本控制工具的诉求。在当今敏捷开发成为主流,研发周期短,跨地域协同开发多的大形势下,选择Git是大势所趋。也正因为如此,国内外有很多基于Git的云端代码托管服务,目前,作者就正在使用华为软件开发云(https://www.hwclouds.com/devcloud/)配置管理服务托管代码,后面我也会详细介绍它的使用方法。

来自: 华为云论坛
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Git版本控制系统-工程开发实践

    Git版本控制系统-工程开发实践主要根据Git官方参考手册Git Pro学习而来

  • Git-2.21.0-64-bit 开源分布式版本控制系统

    Git-2.21.0-64-bit 开源分布式版本控制系统安装包。Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而...

  • 分布式版本控制工具——Git-2.6.2-64-bit

    Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

  • 版本控制工具 --- Git 详解

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS,Subversion ...

  • Git 分布式版本控制系统使用教程

    1. 版本控制系统简介 1.1 集中式版本控制系统 集中式版本控制系统,版本库是集中存放在中央服务器的,团队中每个成员工作时从中央服务器下载代码(必须联网才能工作,局域网或互联网),个人修改后再提交到中央...

  • 版本控制-Git/SVN

    【代码】Git版本控制。

  • 关于Git这一篇就够了

    目录 前言 发展过程 集中式与分布式的区别 Debian/Linux安装Git ...配置git环境:git config --global ...创建本地空仓库:git init ...新建文件添加到本地仓库:git add、git commit ...修改缓存区内容:git add、git co.

  • Git-2.42.0-64-bit-windows安装版

    Git是目前非常流行的分布式版本控制系统,由Linus Torvalds为Linux内核开发而创建,该资源包含 Git-2.42.0-64-bit-windows安装版,仅供学习,下载后请及时删除 Git是目前非常流行的分布式版本控制系统,由Linus ...

  • 【Git分布式版本控制系统一】你还不会用Git进行项目管理?

    500字带你快速掌握git基本命令,了解git的使用,小伙伴们快来学习吧!!!

  • 版本控制工具 之 Git

    版本控制工具 之 Git

  • GIT(分布式版本控制系统)入门

    什么是GIT Git是目前世界上最先进的分布式版本控制系统(没有之一)。    那么问题来了,什么是分布式版本控制系统。    这里举个例子,你需要编写一个文档,这个文档呢财务部需要,产品部也需要。那么你要...

  • 分布式版本控制系统Git------git工作区和主要对象

    前言   接着上个博客来说,在我纠结在暂存... 一句话说明白这个图:暂存区和版本库是引用同一个objects目录的,而暂存区和版本库其实只是存储了文件结构的目录树,并没有存储实际内容,实际内容都存储在objects目录

  • 分布式版本控制系统Git--代码上传

    这里将会说下Git是如何上传代码的 找到想要上传的文件,双击进入并右击选择Git Bash 进入后输入git init 进行初始化 ...是不是发现什么都没返回,不用怕,在git中没返回就是代表成功了 继续输入git commit

  • 分布式版本控制系统-GitLab搭建

    在企业开发过程中,我们需要搭建公司内部的Git版本控制系统,开源免费的 GitLab 成为了我们的选择。本文详细讲解了分布式版本控制系统 GitLab 的搭建、用户配置以及如何进行版本控制。

  • 版本控制器-git的安装

    1.什么是Git Git是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具 1.2关于版本控制 什么是版本控制?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本文所...

  • 分布式版本控制系统——Git

    今天我们来聊聊分布式版本控制系统——Git,废话不多说我们直接开始吧,喜欢的记得关注我哟。 一、Git简介 (一)什么是Git? Git是一个开源的分布式版本控制系统(Distributed Version Control System,简称DVCS)...

  • Git-2.25.0-64-bit.rar

    Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要...

  • git基础教程(1) 为什么要使用版本控制系统?

    在开发项目中使用版本控制系统有很多好处。本章节将向你介绍其中的一些细节。 协同合作 试想一下,如果没有版本控制系统,当你需要处理那些共享文件夹中的文件时,你必须告知办公室里的所有人,你正在对哪些文件进行...

  • Git版本控制管理(二)--git配置

    在系统上安装好Git后,还需要配置Git 环境。 每台计算机上只需要配置一次,程序升级时会保留配置信息,也可以在任何时候再次通过运行命令来修改它们。 配置文件位置 Git 自带一个git config的工具来帮助设置配置...

  • 分布式版本控制系统Git------版本控制(文末有一个小疑问)

    版本控制   之前自己使用Git客户端版在Windows平台乱搞的时候,因为之前在Github上有一个一样的项目仓库。然后手贱点击了reset按钮(应该是这个)结果发现Android Studio整个项目都没见了,吓得我半死。赶快百度...

Global site tag (gtag.js) - Google Analytics