从今天开始。我们了解的分布式版本控制系统Git相关内容。了解Git之前,我们的第一个版本控制系统,使宏观的描述。

什么是版本号控制

版本号控制是指通过对文件内容的变化进行记录,并为每次的变化进行编号,以便将来查阅文件的修订情况。有了版本号控制之后,就能够比較文件变化的细节,以便将某个文件回溯到之前某个时间点的状态。从而解决因为文件变化过程中出现的怪异问题。
        版本号控制到眼下为止的相关产品有非常多,大致能够分为三类。各自是本地版本号控制系统、集中式版本号控制系统和分布式版本号控制系统。

本地版本号控制系统

本地版本号控制系统出现之前。很多人为了保存不同版本号的文件,一般是通过改名病加入时间戳的方式来差别不同的版本号文件。这样的方式很easy,同一时候这样的方式也很easy造成文件混乱。所以很早就有人开发了很多种本地版本号控制系统,其原理也很easy,即使用一个简单的数据库记录文件的每次变更。其原理示意图例如以下所看到的:

集中式版本号控制系统

相对与本地版本号控制系统。集中式版本号控制系统攻克了本地版本号控制系统仅在单个的操作系统之上执行的缺陷,实现了在不同的操作系统之上执行,这就给开发人员之间进行团队合作提供了条件。集中式版本号控制系统的原理很与本地版本号控制系统的原理类似,所不同的是集中式版本号管理系统有一个单一的集中管理的server。该server能够保存全部的文件改动版本号信息,參与团队开发的client连接这台server之后,就能够提交更新和去除最新的文件。

其原理示意图例如以下所看到的:

分布式版本号控制系统

虽然集中式版本号控制系统已经可以满足大部分的需求,但由于集中式版本号控制系统本身就存在单点故障问题,即假设中央server宕机或发生问题。那么各个client将无法正常工作。分布式版本号控制系统的工作原理在于client并不仅仅提取各个client上的最新版本号的文件。而是把中央server上的代码仓库完整地镜像下来。

这样。其中央server发生问题之后,就行利用不论什么一个client的本地仓库进行中央仓库的恢复。由于每一次的提取操作,就是对中央server仓库的完整备份。其原理示意图例如以下所看到的:

三种类型的版本号控制系统介绍就到这里,这里重点了解三者之间故障及解决方案的联系和发展的过程。接下来,我们将继续讲解Git其他。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

Git现实(一个)版本控制概述相关推荐

  1. Git 是一个分布式版本控制工具

    Git 是一个分布式版本控制工具 前言: Git常用命令: 速查手册 Git - The stupid content tracker(傻瓜内容跟踪器),Linus 是这样给我们介绍 Git 的. G ...

  2. Git(分布式版本控制工具)

    [标注]:该笔记是转载自黑马Git教程,里面是包含自己做的笔记,黑马笔记开放共享,不存在侵权的问题,文章最后给出了资料的网盘链接 Git的学习是不依赖我们前面学习的知识,就算没有学习java也可以学习 ...

  3. 【尚硅谷Java笔记+踩坑】Git(分布式版本控制工具)

    用于复习快速回顾 目录 1.Git 1.0.提交项目到GitHub简洁版 1.2.版本控制 1.3.版本控制工具 1.4.Git简史 1.5.Git工作机制 1.6.Git和代码托管中心 2.Git安 ...

  4. 实时 Git,在版本控制之前控制源码

    Git 用于源代码版本控制已经是一个很强大的神器了,但是有人在此基础上还开发了一个被认为是"实时 Git"的工具. 这个工具叫 Coactive,它以 Visual Studio ...

  5. 深入浅出Git教程+一个小时学会Git(转载)(堪称完美)

    转载自: https://www.cnblogs.com/best/p/7474442.html#!comments 目录 一个小时学会Git 一.版本控制概要 工作区 暂存区 本地仓库 远程仓库 1 ...

  6. git本地仓库版本控制

    @概述 Git是一个分布式的版本控制系统: 其主要使用方式是将远程仓库克隆到本地,在本地代码和进行版本管理,并不断将成果提交到GitHub远程仓库进行保管: Git的分布式特性,使得天各一方的开发者能 ...

  7. 什么是 Git? - 探索分布式版本控制工具

    [注]本文译自:https://www.edureka.co/blog/what-is-git/   Git是一个免费的开源分布式版本控制系统工具,旨在快速高效地处理从小型到大型的所有项目.它是由 L ...

  8. git clone一个github上的仓库非常缓慢 和 github网页打不开

    git clone一个github上的仓库非常缓慢,简单快捷的方法解决git下载缓慢问题 文章目录: 1 问题描述 2 解决git clone下载速度缓慢问题 2.1 使用github的镜像网站 (亲 ...

  9. git查看一个文件的历史记录

    git log --all -- '*'FILENAME'*' 支持模糊查询 主要用于查找历史上被删除的文件 可以做成git的一个快捷命令 find = "!f(){ git log --a ...

最新文章

  1. Go web之旅(Request分析)
  2. OSError: [WinError 6] 句柄无效
  3. Java字节码进制转换
  4. spring boot实战(第六篇)加载application资源文件源码分析
  5. win2008服务器维护费用,win2008 服务器安全检查步骤指引(日常维护说明)
  6. 【重要通知】数据技术嘉年华改为线上举办!拥抱元宇宙,我们这么玩儿!
  7. sklearn之Pipeline 估计器
  8. RandomCodeUtil随机数工具类,随机生成数字、字母、数字字母组合、中文姓名
  9. 谭浩强c语言第五版 第二章习题解答
  10. OpenCV计算图像PSNR峰值信噪比
  11. c语言中各个符号的含义总结,C语言中的符号总结
  12. 优先队列(priority_queue)总结
  13. css+svg实现的定宽高比
  14. 设置Win7虚拟机的内存
  15. Java中实现十进制数转换为二进制的几种办法
  16. 月末关账流程和政策规定
  17. android 华为mate 获取定位权限,【严重安全问题】开启了定位权限,但是软件还是没权限...
  18. Power Apps函数笔记
  19. 神经网络neural network
  20. 很全的敏感词匹配系统的设计与实践

热门文章

  1. MAC Opencv include选择
  2. MD5算法 —— C语言实现(字符串的加密)
  3. FormData 的使用
  4. 加载静态文件,父模板的继承和扩展(2017.11.3)
  5. 源码安装zabbix3.2.7时PHP ldap Warning
  6. 作业二:了解流行的软件
  7. VIM入门必读(转)
  8. 自定义工作流任务控件
  9. 图像处理之基于NCC模板匹配识别
  10. react hook——你可能不是“我”所认识的useEffect