返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >git基础之各版本控制系统介绍
  • 913
分享到

git基础之各版本控制系统介绍

2024-04-02 19:04:59 913人浏览 安东尼
摘要

目录1、什么是版本控制系统2、我们为什么要用版本控制3、版本管理系统的演变(1)本地版本控制系统(2)集中化版本控制系统(3)分布式版本控制系统1、什么是版本控制系统 版本控制是一种

1、什么是版本控制系统

版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。

有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较不同版本文件的变化细节,查出最后是谁修改了哪个地方。也就是无论文件最后被修改成什么样子,你都可以轻松恢复到原先的样子,但是额外增加的工作量却微乎其微。

2、我们为什么要用版本控制

世界上无数大大小小的开发项目,都在使用各种各样的版本控制系统,原因在于它的优点对于一个项目开发来说是无比重要。

比如一个最简单的开发团队,也许就两三个人,他们共同完成一个软件的开发。每个人都在修改、添加、删除着自己本地硬盘上的代码,当他们需要把这些代码汇总起来时,麻烦出现了。到底谁改了哪些文件?具体是文件里的哪部分被改动过?A人员修改的内容会不会把B人员的修改的内容覆盖掉,汇总工作就变得很危险,需要非常小心,一旦出错后果不堪设想。显然此时效率将会是无比的低下,如果某个地方出错,可能整个汇总工作就要重来一遍。这只是两三人的小团队,如果是几十人几百人的大团队呢?那将会是噩梦。

如果这个团队采用了版本控制,那么版本控制软件在每次提交文件的时候,都会主动合并所有人的修改,并解决可能发生的冲突。每个人手里一直都是汇总好的代码,当开发进行到一定阶段,可以直接拿去测试,不需要再有额外的工作来浪费时间。

3、版本管理系统的演变

(1)本地版本控制系统

许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。 这么做唯一的好处就是简单,但是特别容易犯错。 有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件。

为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异。

这种形式主要实现了基本的代码版本管理,但缺点是无法让多人同时对一个版本库进行修改。这个也和当时软件规模不够大有关,也没有这样的需求。

(2)集中化版本控制系统

接下来人们又遇到一个问题,如何让在不同系统上的开发者协同工作? 于是,集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS)应运而生。 这类系统,诸如 CVS、Subversion等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。 多年以来,这已成为版本控制系统的标准做法。

这种做法带来了许多好处,特别是相较于老式的本地 VCS 来说。 现在,每个人都可以在一定程度上看到项目中的其他人正在做些什么。 而管理员也可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易。

事分两面,有好有坏,集中管理的服务器最显而易见的缺点是中央服务器的单点故障问题。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据,包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。 本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。

集中式版本控制系统另外一个大的问题就是必须联网才能工作,如果不能连接到中央服务器上,就不能对文件进行提交,还原,对比等操作。

(3)分布式版本控制系统

于是分布式版本控制系统(Distributed Version Control System,简称 DVCS)面世了。 在这类系统中,像 git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像,把本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

许多这类系统都可以指定和若干不同的远端代码仓库进行交互。因此你就可以在同一个项目中,分别和不同工作小组的人相互协作。 你可以根据需要设定不同的协作流程,比如层次模型式的工作流,而这在以前的集中式系统中是无法实现的。

参考:

https://www.jb51.net/article/245601.htm

以上就是git基础之各版本控制系统介绍的详细内容,更多关于git版本控制系统的资料请关注编程网其它相关文章!

--结束END--

本文标题: git基础之各版本控制系统介绍

本文链接: https://lsjlt.com/news/146938.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • git基础之各版本控制系统介绍
    目录1、什么是版本控制系统2、我们为什么要用版本控制3、版本管理系统的演变(1)本地版本控制系统(2)集中化版本控制系统(3)分布式版本控制系统1、什么是版本控制系统 版本控制是一种...
    99+
    2024-04-02
  • Java基础篇之分布式版本控制工具Git
    目录版本控制版本控制分类1.本地版本控制2.集中版本控制SVN3.分布式版本控制Git和SVN的区别Git的历史:常用的Linux命令Git配置Git基本理论(重要)Git项目搭建本...
    99+
    2024-04-02
  • Git基础之git与SVN版本控制优缺点区别分析
    目录Git和SVN的区别(1)SVN(集中式版本管理系统)(2)Git(分布式版本管理系统)2、SVN和Git的优缺点(1)SVN优缺点(2)Git优缺点3、总结一下Git和SVN的...
    99+
    2024-04-02
  • 使用版本控制原因及Git与Subversion介绍
    目录前言什么是版本控制?为什么要力挺版本控制?Subversion版本控制选择分布式版本控制系统Mercurialgit总结前言 不知道什么是版本库的,扇自己两个大嘴巴;知道但不用的...
    99+
    2024-04-02
  • win8系统怎么样?各版本区别介绍
    2012年8月2日,微软宣布Windows 8开发完成,正式发布RTM版本。 小编最近装上用了一下还不错,刚上手的时候不习惯,用时间长了,用回7反而觉的7不够方便。不过那些app应用刚起步,很多做出来的软件...
    99+
    2022-06-04
    各版 区别 系统
  • Windows8系统版本介绍
    在开篇前言中我们介绍了Windows8的四个重要历史开发版本,而对于Windows8发行版本来说Windows8包括了四个版本:Windows8(普通版)、Windows8Professional(专业版)...
    99+
    2022-06-04
    版本 系统
  • Win10系统有几个版本?Windows10各版本区别详细介绍
    随着Win10正式版发布临近,微软今天正式公布了Win10版本。由于Win10融合了PC、平板以及智能手机三大平台,因此Win10版本也要明显比Win7/8复杂。那么Win10有几个版本?各版本有哪些区别呢?作为手机电脑...
    99+
    2023-05-19
    Win10 版本 区别
  • Android基础之常用控件属性介绍
    目录常用控件之常用属性控件可见性TextViewButtonEditTextImageViewProgressBarAlertDialogProgressDialogToastMen...
    99+
    2024-04-02
  • Linux系统下怎么安装Git分布式版本控制系统
    这篇文章主要讲解了“Linux系统下怎么安装Git分布式版本控制系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统下怎么安装Git分布式版本控制系统”吧!Git 是一...
    99+
    2023-06-27
  • 如何在Linux系统上安装Git并进行版本控制?
    作为一款开源的分布式版本控制系统,Git在软件开发行业中被广泛使用。Git的使用可以大大提高代码的可维护性和可扩展性,而且它在多人协作开发中也非常方便。在本篇文章中,我们将介绍如何在Linux系统上安装Git,并学习如何使用Git进行版本控...
    99+
    2023-11-01
    linux git spring
  • 如何在Ubuntu上安装并配置Git版本控制系统
    在Ubuntu上安装并配置Git版本控制系统可以通过以下步骤实现: 首先,打开终端并运行以下命令来安装Git: sudo apt...
    99+
    2024-04-02
  • Linux系统下Supervisor的基本用法介绍
    这篇文章主要介绍“Linux系统下Supervisor的基本用法介绍”,在日常操作中,相信很多人在Linux系统下Supervisor的基本用法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统...
    99+
    2023-06-12
  • 如何安装CentOS系统上搭建Git版本控制服务器
    这篇文章主要介绍“如何安装CentOS系统上搭建Git版本控制服务器”,在日常操作中,相信很多人在如何安装CentOS系统上搭建Git版本控制服务器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何安装Cen...
    99+
    2023-06-10
  • Git分布式版本控制系统的核心原理是什么?
    Git是目前最流行的分布式版本控制系统,它具有高效、快速、稳定等优点,被广泛应用于软件开发、文档管理等领域。那么在本文中,我们将详细探讨Git分布式版本控制系统的核心原理,带你深入了解Git的原理和机制。 Git分布式版本控制系统的核心...
    99+
    2023-09-14
    分布式 git leetcode
  • Java中的日志系统是如何响应Git版本控制的?
    在Java开发过程中,日志是一个非常重要的工具,可以帮助我们定位和解决各种问题。而Git则是目前最流行的版本控制工具之一,可以帮助我们管理和维护代码的版本。那么,当这两个工具结合在一起时,Java中的日志系统又是如何响应Git版本控制的呢...
    99+
    2023-07-21
    日志 响应 git
  • Linux系统配置(服务控制)详细介绍
    目录前言一、系统服务控制1、systemctl2、target3、常见系统服务4、开机自启服务管理二、服务管理1、防火墙与核心防护2、时间管理3、SSH服务结语前言 linux操作系统中包含了大量的服务程序,这些服务...
    99+
    2022-06-04
    Linux系统设置及基本操作
  • ECSHOP模板系统控制标签使用介绍
    ECSHOP模板系统控制标签介绍说明,本文将为您介绍ecshop中基本的控制函数标签的使用参数和方法,其中包括if标签、foreach标签、for标签等,其实Smarty 中的 if 语句和 php 中的 if 语句一样...
    99+
    2022-06-12
    ECSHOP 控制标签
  • Linux系统配置(服务控制)详细介绍
    目录前言一、系统服务控制1、systemctl2、target3、常见系统服务4、开机自启服务管理二、服务管理1、防火墙与核心防护2、时间管理3、SSH服务结语前言   &...
    99+
    2024-04-02
  • Linux基础之终端、控制台、tty、pty简介说明
    一、 基本概念 1、 tty tty(终端设备的统称):tty一词源于teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘阅读和发送信息的东西,后来这东西被键盘与显示...
    99+
    2022-06-04
    linux pty tty tty终端 linux 控制台 终端
  • 掌握 GO 语言和 UNIX 系统的关键:Git 版本控制技巧
    掌握 GO 语言和 UNIX 系统的关键:Git 版本控制技巧 作为一名 GO 开发人员,掌握 Git 版本控制技巧是非常重要的。Git 是一种分布式版本控制系统,它可以帮助我们跟踪代码的变化,协作开发,以及管理代码库。在 Unix 系统中...
    99+
    2023-10-03
    unix 学习笔记 git
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作