Git基础概念

本章关于开始学习 Git。这篇文章将从介绍有关版本控制工具的一些背景知识开始,然后讲解如何在系统运行 Git,最后是关于如何设置 Git 开始工作。 通过本章的学习,了解为什么 Git 这么流行,为什么要使用 Git 以及应该如何设置以便使用 Git。

关于版本控制

什么是“版本控制”?为什么要关心它呢? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本书所展示的例子中,我们对保存着软件源代码的文件作版本控制,但实际上,可以对任何类型的文件进行版本控制。

如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是你非常渴望拥有的功能),采用版本控制系统(VCS)是个明智的选择。 有了它就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。 使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改,删的删了,这也没有关系,你也照样可以很容易地就恢复到原先的样子。但额外增加的工作量却微乎其微。

本地版本控制系统

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

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

其中最流行的一种叫做 RCS,现今许多计算机系统上都还看得到它的踪影。 甚至在流行的 Mac OS X 系统上安装了开发者工具包之后,也可以使用 rcs 命令。 它的工作原理是在硬盘上保存补丁集(补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。

集中化的版本控制系统

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

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

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

分布式版本控制系统

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

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

//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/git/git_basic_concepts.html

原文地址:https://www.cnblogs.com/borter/p/12424028.html

时间: 2024-11-02 19:02:30

Git基础概念的相关文章

Git基础概念与操作

博文大纲:一.初识Git二.Git的安装配置三.Git工作流程四.Git工作区.暂存区和版本库五.Git基本操作 一.初识Git Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持. Git与SVN的区别:1)Git是分布式的,SVN不是:

Git基础和入门

一.Git基础概念 Git功能简单概述 可以随时回滚到之前的代码版本(git reset --hard ): 协同开发时不会覆盖别人的代码(分支): 留下修改记录(git log): 发版时可以方便的管理不同的版本: 1.Git工作模式 操作 90%以上的操作在个人计算机上 添加文件.修改文件.提交变更.查看版本历史等 版本库同步 将本地修改推送到版本服务器 版本控制系统: 2.Git文件存储 注意文件存储和SVN不同: Git 不按照SVN那样对待或保存数据. 反之,Git 更像是把数据看作是

Git常用命令及基础概念

1.基础概念1.1Workspace工作区          在电脑中能看到的目录.1.2Index/Stage暂存区(add)          一般存放在"git目录"下的index文件(.git/index)中,所以把暂存区有时也叫索引(index).1.3版本库          工作区有一个隐藏目录.git,这不算工作区,而是git的版本库.1.4Repository仓库区或本地仓库(commit)1.5Remote远程仓库(push)2.常用命令2.1git intit  

Gi之(二)Git基础命令

三个工作区域 使用Git之前,首先要弄清Git的三个管理区域,有助于理解Git的运行原理,以及每个Git命令对文件造成的影响. 对于任何一个文件,在本地的Git内部都有三种状态: l   已修改(modified) 表示修改了某个文件,但还没有提交保存.包括新增.删除了一个文件,也属于已修改状态的一种. l   已暂存(staged) 表示把已修改的文件放到了暂存区,也就是放到了下次提交时的清单中. l   已提交(committed) 表示该文件已经被安全地保存在本地数据库中了. 三种状态对应

控制台基础概念实例

上一篇文章 控制台基础概念 介绍了控制的基本构成,以及一些操作处理.这一部分以实际代码为主,给出控制台使用的几个例子. 以main函数作为入口函数的程序都是控制台程序,最简单的控制台程序就是Hello World的程序.这里不给出了. GUI程序可以使用以下几种方式使用控制台: 在调用CreateProcess时使用CREATE_NEW_CONSOLE标志.(默认情况下,待启动进程为控制台程序时不推荐使用该参数,因为无法确定用户输入是有哪个控制台处理的) 通过 AttachConsole函数附加

Git基础

这次开发要使用Git取代SVN.借机学习了一二,跟大家分享一下. Git简单介绍 一句话总结的说,Git是一个开源的分布式版本号控制系统,由Linux内核开发者开发,现已用来管理android等多个大型项目. 设计目标: 高速操作 简单设计 并行开发(上千个) 全然分布式 能力超强(类似Linux内核管理) 和SVN 提到版本号管理系统,自然会想到SVN,假设你原来是使用tortoiseSVN操作,你如今能够用tortoiseGit.表面上看.你会发现tortoiseGit除了多了几个诸如Pus

Git详解之二 Git基础

来自:http://www.open-open.com/lib/view/open1328069733264.html Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置:开始或停止跟踪某些文件:暂存或提交某些更 新.我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件:如何既快且容易地撤消犯下的小错误:如何浏览项目的更新历史,查看某

git基础一

git基础学习 git客户端,git服务器 1.通过git命令,在本地创建仓库 该仓库可上传到服务器,进行git管理 使用git init等语句 2.将服务器创建的仓库克隆到本地 在服务器中创建仓库,使用clone将仓库克隆到本地 github是基于git的代码托管平台,用户可以建立公共仓库,(公共仓库,代码开源),通过客户端将代码上传到仓库: 问题: 1. 客户端安装? 2. 客户端如何连接到github仓库? 3. 客户端如何与仓库交互,比如获取仓库文件,提交,建立分支等? ××××××××

Git详解之二:Git基础

原文:<Pro Git> Git 基础 读完本章你就能上手使用 Git 了(伯乐在线注:如果你对Git还不了解,建议从本Git系列第一篇文章开始阅读).本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置:开始或停止跟踪某些文件:暂存或提交某些更 新.我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件:如何既快且容易地撤消犯下的小错误:如何浏览项目的更新历史,查看某两次更新之间的差