Git实战(一)版本控制概述

从今天开始,我们学习一下分布式版本控制系统Git的相关内容。在了解Git之前,我们先来对版本控制系统做一个宏观的介绍。

什么是版本控制

版本控制是指通过对文件内容的变化进行记录,并为每次的变化进行编号,以便将来查阅文件的修订情况。有了版本控制之后,就可以比较文件变化的细节,以便将某个文件回溯到之前某个时间点的状态,从而解决由于文件变化过程中出现的怪异问题。

版本控制到目前为止的相关产品有很多,大致可以分为三类,分别是本地版本控制系统、集中式版本控制系统和分布式版本控制系统。

本地版本控制系统

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

集中式版本控制系统

相对与本地版本控制系统,集中式版本控制系统解决了本地版本控制系统仅在单个的操作系统之上运行的缺陷,实现了在不同的操作系统之上运行,这就给开发者之间进行团队合作提供了条件。集中式版本控制系统的原理非常与本地版本控制系统的原理类似,所不同的是集中式版本管理系统有一个单一的集中管理的服务器,该服务器可以保存所有的文件修改版本信息,参与团队开发的客户端连接这台服务器之后,就可以提交更新和去除最新的文件。其原理示意图如下所示:

分布式版本控制系统

尽管集中式版本控制系统已经能够满足大部分的需求,但由于集中式版本控制系统本身就存在单点故障问题,即如果中央服务器宕机或发生故障,那么各个客户端将无法正常工作。分布式版本控制系统的工作原理在于客户端并不只提取各个客户端上的最新版本的文件,而是把中央服务器上的代码仓库完整地镜像下来。这样,当中央服务器发生故障之后,就可以利用任何一个客户端的本地仓库进行中央仓库的恢复。因为每一次的提取操作,就是对中央服务器仓库的完整备份。其原理示意图如下所示:

三种类型的版本控制系统介绍就到这里,这里重点了解三者之间的联系和发展过程中出现问题和解决方案。接下来我们会继续讲解Git的其他内容。

Git实战(一)版本控制概述

时间: 2024-10-11 01:02:38

Git实战(一)版本控制概述的相关文章

Git实战(四)状态转换

上次的Git实战(三)环境搭建博文,我们大致讲解了一下git的环境安装,今天我们讲解一下Git的状态转换. 学习版本控制工具,对工具进行版本控制之间的状态转换非常重要.毕竟Git只是一个工具,如果不了解工具的每一步操作都是为什么,那么学习Git也就没有多大意义了. Git初始化 在学习Git状态转换之前,我们先来认识一下Git的初始化,即在本地创建一个Git版本库.与SVN在服务器上创建唯一的版本库不同,Git版本库可以随客户端需要自由在客户端创建,其个数和位置不受任何限制.git初始化命令,如

Git实战(二)原理

上次的博文Git实战(一)版本号控制概述中我们简介了一下版本号控制系统的概念,重点对版本号控制的三种类型进行了分析和对照,从本篇博文開始我们进入Git的世界,首先介绍一下Git实现版本号控制的原理. Git与SVN等其它版本号控制系统的最重要的一点差别在于,Git仅仅关心文件数据的总体是否变化,而不是关心文件内容的差异. SVN等原理分析        怎样理解呢?我们能够通过两种图进行比較,首先看一下SVN等其它版本号控制系统的原理图,例如以下所看到的: 在上述图片中,横向表示各个版本号,纵向

Git实战(三)环境搭建

上次的博文中,我们介绍了一下关于Git作为版本控制工具的基本原理,接下来我们来搭建一个基本的Git环境(由于我使用的是Windows系统,所以重点侧重在这方面). Git安装 Git的安装非常简单,这里就不再多作介绍了,给大家提供一个官方参考文档 http://git-scm.com/book/zh/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git Git中文环境 默认情况下,Git的Shell环境下是使用命令是无法显示中文字符的,为了显示中文,我们可以在使用命

puppet学习之使用git实现puppet版本控制

puppet学习之使用git实现puppet版本控制 本文通过创建用户资源的例子介绍为多台agent同时添加用户账户.git仓库的创建.puppet加入git仓库.通过远程管理主机管理配置文件及文件版本的回滚处理. 一.系统环境 系统平台:Centos6.6_x86_64 主机规划: 192.168.115.21   puppet1.hnr.com  master 192.168.115.22   puppet2.hnr.com  agent 192.168.115.23   puppet3.h

源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )

一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 git的起源 作者是Linux之父:Linus Benedict Torvalds 当初开发git仅仅是为了辅助Linux内核的开发(管理源代码) git的现状 在国外已经非常普及,国内并未普及(在慢慢普及) 越来越多的开源项目已经转移到git CVS 最早的开源.免费的集中式版本控制工具 自身设计有问题,会造成提交文件不完整,版本库莫名其妙损坏的情况 SVN

iOS开发——开发实战篇&版本控制SVN和Git简单实战总结

版本控制SVN和Git简单实战总结 如果你对iOS开发中的版本控制还不了解那么你可以先看看这篇(大致看一遍就ok) 关于版本控制使用起来并不难,但是可能你会遇到这样问题! 学了这么多命令,感觉自己都知道,而且基本上都能敲出一二,但是就是不轻松公司实际开发中到底要怎么用,或者我该怎么下手,下面我们就来看看我们到了公司之后首先要做的,和之后经常要做的一些事情(命令太多没必要去记,常用的也就那么几个). 首先,你必须先知道,在天朝,SVN目前任是主流,但是又不的不会(这里具体原因我就不多说了)! 好了

iOS开发——开发实战篇&版本控制SVN和Git使用详解

版本控制SVN和Git使用详解 公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的! -----------------svn----------------- 一:最常用基本步骤--- 下载(完整下载,第一次),将服务器的项目下载到本地开始开发 svn checkout ip —uaerbane=? —password=?     //这里需要add 简:co 更新仓库,服务器项目有变动的时候需要更新到本地,以免错误或者冲突 svn updata    

Git现实(一个)版本控制概述

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

git实战(1)--git简介

在实战之前先搞清楚git是什么,git是当前最流行的分布式版本版本控制系统.那么也许有人会问: 为什么要进行版本控制? 试想如果没有版本控制,你对一个工程的源码进行了修改,但测试一把发现有问题必须回滚,如何回滚,怎么回滚,天知道你都改了什么:试想团队同时对一个项目进行开发,如果汇集所有的人的提交! 几人git是分布式版本控制系统,是否也存在集中式的,二则的区别是什么? 版本控制系统的确存在集中式和分布式之分,其中集中式主要包括cvs等!集中式的版本控制比较容易理解,存在唯一的中心环境,每一个人都