Git现实(一个)版本控制概述
从今天开始。我们了解的分布式版本控制系统Git相关内容。了解Git之前,我们的第一个版本控制系统,使宏观的描述。
什么是版本号控制
版本号控制是指通过对文件内容的变化进行记录,并为每次的变化进行编号,以便将来查阅文件的修订情况。有了版本号控制之后,就能够比較文件变化的细节,以便将某个文件回溯到之前某个时间点的状态。从而解决因为文件变化过程中出现的怪异问题。
版本号控制到眼下为止的相关产品有非常多,大致能够分为三类。各自是本地版本号控制系统、集中式版本号控制系统和分布式版本号控制系统。
本地版本号控制系统
本地版本号控制系统出现之前。很多人为了保存不同版本号的文件,一般是通过改名病加入时间戳的方式来差别不同的版本号文件。这样的方式很easy,同一时候这样的方式也很easy造成文件混乱。所以很早就有人开发了很多种本地版本号控制系统,其原理也很easy,即使用一个简单的数据库记录文件的每次变更。其原理示意图例如以下所看到的:
集中式版本号控制系统
相对与本地版本号控制系统。集中式版本号控制系统攻克了本地版本号控制系统仅在单个的操作系统之上执行的缺陷,实现了在不同的操作系统之上执行,这就给开发人员之间进行团队合作提供了条件。集中式版本号控制系统的原理很与本地版本号控制系统的原理类似,所不同的是集中式版本号管理系统有一个单一的集中管理的server。该server能够保存全部的文件改动版本号信息,參与团队开发的client连接这台server之后,就能够提交更新和去除最新的文件。
其原理示意图例如以下所看到的:
分布式版本号控制系统
虽然集中式版本号控制系统已经可以满足大部分的需求,但由于集中式版本号控制系统本身就存在单点故障问题,即假设中央server宕机或发生问题。那么各个client将无法正常工作。分布式版本号控制系统的工作原理在于client并不仅仅提取各个client上的最新版本号的文件。而是把中央server上的代码仓库完整地镜像下来。
这样。其中央server发生问题之后,就行利用不论什么一个client的本地仓库进行中央仓库的恢复。由于每一次的提取操作,就是对中央server仓库的完整备份。其原理示意图例如以下所看到的:
三种类型的版本号控制系统介绍就到这里,这里重点了解三者之间故障及解决方案的联系和发展的过程。接下来,我们将继续讲解Git其他。
版权声明:本文博客原创文章。博客,未经同意,不得转载。
Git现实(一个)版本控制概述的更多相关文章
- 实战:使用SVN+apache搭建一个版本控制服务器
今天讲的内容: 实战:使用SVN+apache搭建一个版本控制服务器 每天: 10:00 晚上:21:00 服务端:xuegod63.cn IP:192.168.10.63 服务概述: SVN(s ...
- iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )
一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 git的起源 作者是Linux之父:Linus Bened ...
- Git 实习一个月恍然大悟合集
从开始实习到现在大概有一个月了,这个月时间接触了很多新东西,其中就包括了git版本控制.分支管理等等.我在这段时间里,深深地感受到了git对公司项目代码管理和控制.团队合作带来的益处和其重要性.其实在 ...
- git引入_版本控制介绍
八个字形容git技术: 公司必备,一定要会 一.git概念: git是一个免费的,开源的分布式版本控制系统,可以快速高效的处理从小型到大型的项目 二.什么是版本控制: 版本控制是一种一个记录一个或若个 ...
- git查看一个文件的历史记录
git log --all -- '*'FILENAME'*' 支持模糊查询 主要用于查找历史上被删除的文件 可以做成git的一个快捷命令 find = "!f(){ git log --a ...
- 【Git】Git初始化一个仓库
文章目录 初始化仓库 检查当前文件状态 跟踪新文件 提交更新 跳过使用暂存区域 移除文件 添加远程仓库 推送到远程仓库 简单记录-慕课网 从0开始 独立完成企业级Java电商网站开发 Git初始化一个 ...
- Git: 搭建一个本地私人仓库
Git: 搭建一个本地私人仓库 寝室放个电脑.实验室也有个电脑 为进行数据同步,充分利用实验室的服务器搭建了个本地私人仓库 1. 安装流程 当然首先保证服务器上与PC机上都已经安装了可用的Git 在P ...
- 【Git版本控制】Git初始化一个仓库
git init //初始化一个本地库 git add -A//将所有的文件添加到暂存区 git commit -m “首次提交” //将暂存区的文件提交到版本库 git remote add ori ...
- 使用百度网盘+Git,把版本控制托管到云端
之前公司的一个项目使用SVN来做的版本控制,服务器设在我这台电脑上.然后是出于某些原因,我的电脑IP变了多次,每变一次就要重新绑定静态ip,甚是烦人.同时SVN这种集中式的版本控制服务在我关闭了我的电 ...
随机推荐
- vim ctl+v批量添加/删除
vim编辑器---批量注释与反注释 在使用vim编写代码的时候,经常需要用到批量注释与反注释一段代码.下面简要介绍其操作. 方法一 块选择模式 插入注释: 用v进入virtual模式 用上下键选中需要 ...
- IOS应用程序生命周期详解
第一. IOS应用程序的五种状态: 1. Not running:应用还没有启动,或者应用正在运行但是途中被系统停止. 2. Inactive:当前应用正在前台运行,但是并不接收事件(当前或许正在执行 ...
- tar解压出错
现象 # tar -zxvf aaa.tar.gz tar: This does not look like a tar archive tar: Skipping to next header ta ...
- html中滚动栏的样式
DIV滚动栏设置 (CSS)2008/09/26 03:07div 中滚动栏的控制2008年01月06日 星期日 01:181)隐藏滚动栏<body style="overflow-x ...
- ZOJ 3795 Grouping 求最长链序列露点拓扑
意甲冠军:特定n积分.m向边条. 该点被划分成多个集合随机的每个集合,使得2问题的关键是无法访问(集合只能容纳一个点) 问至少需要被分成几个集合. 假设没有戒指,接着这个话题正在寻求产业链最长的一个有 ...
- Socket编程实践(13) --UNIX域名协议
UNIX域名协议 UNIX域套接字与TCP相比, 在同一台主机上, UNIX域套接字更有效率, 差点儿是TCP的两倍(因为UNIX域套接字不须要经过网络协议栈,不须要打包/拆包,计算校验和,维护序号和 ...
- dij算法为什么不能处理负权,以及dij算法变种
对于上面那张图,是可以用dij算法求解出正确答案,但那只是巧合而已. 我们再看看下面这张图. dist[4] 是不会被正确计算的. 因为dij算法认为从队列出来的点,(假设为u)肯定是已经求出最短路的 ...
- yum简介(转)
yum是什么yum = Yellow dog Updater, Modified 主要功能是更方便的添加/删除/更新RPM包. 它能自动解决包的倚赖性问题. 它能便于管理大量系统的更新问题yum特点可 ...
- 【Web探索之旅】第二部分第一课:客户端语言
内容简介 1.第二部分第一课:客户端语言 2.第二部分第二课预告:服务器语言 第二部分:Web编程语言和工具 大家好.上一个部分我们学习了Web的一些基本概念: 什么是Web? Internet和We ...
- Restify —— 在Node.js中构建正确的REST Web服务
http://restify.com/ https://segmentfault.com/a/1190000000369308 https://cnodejs.org/topic/516774906d ...