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这种集中式的版本控制服务在我关闭了我的电 ...
随机推荐
- 动态接口服务 webservice
private void GetDll() { WebClient client = new WebClient(); string url = "http://xxxx/services/ ...
- EF 执行视图
IEnumerable<V_stocks> summary = db.Database.SqlQuery<V_stocks>("SELECT * FROM dbo.V ...
- hdu1532 (最大流入门,EK算法)
看着这个博客 然后敲了hdu1532这个入门题,算是对最大流有点理解了 #include <stdio.h> #include <string.h> #include < ...
- 解决vmware卡的要死
如题: 一般而言虚拟机不会卡的.CPU跟随你的操作而增减,内存设置vmware的推荐值就好.遇到卡的情况,检查一下如下情况. 两个方法: 1>内存分配最好是1G,512少了点 2>虚拟机的 ...
- HDOJ 4687 Boke and Tsukkomi 一般图最大匹配带花树+暴力
一般图最大匹配带花树+暴力: 先算最大匹配 C1 在枚举每一条边,去掉和这条边两个端点有关的边.....再跑Edmonds得到匹配C2 假设C2+2==C1则这条边再某个最大匹配中 Boke and ...
- bin home
bin=$(cd `dirname $0`;pwd)home=$(dirname $bin)
- DataGridView大扩展——显示行号
原文 DataGridView大扩展——显示行号 在DataGridView 的实际使用中,经常需要标示出行号,这样可以比较醒目地看到当前信息.不过DataGridView 在绘制 DataGridV ...
- 当用户登录,经常会有实时的下拉框,例如,输入邮箱,将会@qq.com,@163.com,@sohu.com
如图所示, 码,如以下:<input id="user_sn" class="loginInput" name="user_sn" t ...
- 【C语言】推断一个数的奇偶(位操作)
//推断一个数的奇偶 #include <stdio.h> int is_signal(int num) { if (num & 1) return 1; else return ...
- Linux平台下裸设备的绑定:
Linux平台下裸设备的绑定: 运用RAW绑定 方法一 raw的配置(1) [root@qs-dmm-rh2 mapper]# cat /etc/rc.local #!/bin/sh # # This ...