Git 学习(一)简介及安装

Git 简介及安装

  Git是目前世界上最先进的分布式版本控制系统(没有之一)。它的诞生也颇具传奇,Linux创始人Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!有兴趣的话,可查看 Git的诞生

  什么是版本控制?

    版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。

    版本控制系统/软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理活动,追踪多个版本的开发和维护活动,及时发布软件。

    常用的版本控制系统/软件有 VSS、CVS、SVN 以及 Git 等。简介详见 百度百科

  什么是分布式?

    分布式版本控制 (DVCS) 是一种不需要中心服务器的管理文件版本的方法,但是它也可以使用中心服务器。更改可以被合并到 DVCS 的任何其他用户的系统中,因此可以实现非常灵活的工作流。

    DVCS 的两个主要优点是:它比集中的版本控制更灵活,因为它除了支持传统的(集中式)工作流,还支持其他各种工作流;它比集中式服务器快得多,因为大多数操作在客户机本地进行,而不需要网络操作。

    

  为什么选择 Git ?

    实际上,相对于 CVS、SVN 等主流版本控制软件,Git 的学习成本会更高。SVN等的图形操作界面,对于用惯 Windows 系统的用户来说,使用和理解上都比较易学。而对于 Git 用户,需要理解更多更复杂的概念,包括文件、快照、工作树、索引、本地资源库、远程资源库、远程、提交、分支和 Stash 等。那相比于 CVS 与 SVN,Git 的优势到底体现在哪里?

    第一,Git 底层自行维护的存储文件系统

      CVS、SVN 底层采用的为增量式文件系统,如图 1 所示。增量式文件系统的特点是:当文件变动发生提交时,该文件系统存储的是文件的差异信息。

         图 1. CVS、SVN 记录文件内容差异

      同样是文件变更提交,Git 底层文件系统存储的则为文件快照,即整个文件内容,并保存指向快照的索引,如图 2 所示。考虑到性能因素,如果文件内容没有发生任何变化,该文件系统则不会重复保存文件,只是简单地保存文件的链接。

         图 2. Git 记录整个文件快照

      Git 之所以选择这样的底层存储数据结构,主要是为了提高 Git 分支的使用效率。实际上,Git 分支本质上是一个指向索引对象的可变指针,而每一个索引对象又指向文件快照,如图 3 所示。

        图 3. Git 分支对应的数据结构

      

      这样一来,创建分支可以瞬间完成,几乎不需要花费太多代价。换句话说,Git 分支是廉价的、轻量级的。我们看看各种 CVS、SVN 项目,分支通常意味着源代码的完整拷贝,其代价是昂贵的、重量级的。而对于大型项目来说,创建各种分支又是十分必要的,这与 Git 鼓励频繁创建与合并分支的理念相吻合。

    第二,Git 版本控制系统的设计思想是"去中心化"

      传统的 CVS 、SVN 等工具采用的是 C/S 架构,只有一个中心代码仓库,位于服务器端。而一旦由于服务器系统宕机、网络不通等各种原因造成中心仓库不可用,整个 CVS 、SVN 系统的代码检入与检出就瘫痪了。即便考虑到高可用性,通过迁移另一个中心仓库继续代码提交操作,相应的运营维护成本也会随之上升。

      为了摆脱对中心仓库的依赖,Git 的初始设计目标之一就是分布式控制管理。我们给出一个样例,如图 4 所示。假如我们成立一个项目组,开发者主要由 Alice、Bob、Clair、David 四名成员组成。其中,除了中心仓库 origin(Git 默认远程仓库名称)之外,每一名成员各自负责一个本地仓库。从分布式的观点来看,David 可看成是 Alice 的远程仓库,反过来也是一样。Git 分布式的设计理念有助于减少对中心仓库的依赖,从而有效降低中心仓库的负载,改善代码提交的灵活性。

           图 4. Git 分布式工作示意图

      Git 分布式设计思想所带来的另外一大好处是支持离线工作。离线工作的好处不言而喻,对于 CVS、SVN 这种严重依赖网络的 C/S 工具而言,没有了网络或者 VPN ,就意味着失去了左膀右臂,代码检入与检出操作就无法正常进行。而一旦使用 Git ,即便在没有 WIFI 的飞机或者火车上,照样可以频繁地提交代码,只不过先提交到本地仓库,等到了网络连通的时候,再上传到远程的镜像仓库。

      有关 Git 更多详细信息,请参考 Git 官方网站:http://git-scm.com/‎

  安装Git

    廖雪峰的这篇博文已经很好地说明了如何 安装Git,请根据不同的系统安装Git。

    P.S   安装验证,Linux 下 输入 git;Windows cmd 下 git

    TortoiseGit

      Window 的用户,对于习惯 Tortoise 风格的用户,可以选择 TortoiseGit 安装包,安装后的右键截图如图 8 所示。TortoiseGit 的下载地址为:http://code.google.com/p/tortoisegit/ 或者  http://download.tortoisegit.org/

            从 Windows 上安装“右键”Git 工具——TortoiseGit

    Eclipse 插件——EGit

      使用的 Eclipse 开发者,可以选择 Eclipse 插件——EGit。官方地址为:http://wiki.eclipse.org/EGit

EGit目前还是一个处于孵化期间的项目,因此EGit 0.7.1并没,同 时也无法保证没有bug(当然EGit 0.7.1是经过严格的测试之后才发布的正式版本),但对于笔者这样的用户来说能满足基本的功能并且可以方便的享受Eclipse整合git功能即可。同 时作者表示在Eclipse下一个发行版Eclipse Helios到来之际将发布EGit 0.8,届时EGit的功能将更加强大,同时提供更多的新特性支持。

      在线安装:Eclipse - help -Install new software ...   Add  http://download.eclipse.org/egit/updates-3.6.2/

          OK 后如下

        勾选并 Next,安装完成后,应会提示重启 Eclipse   

      安装完成后,需要配置,对应使用博主还没操作做,可参考:http://www.cnblogs.com/draem0507/archive/2013/01/14/2859954.html

 

 

时间: 2024-11-08 23:48:24

Git 学习(一)简介及安装的相关文章

Git 学习笔记<简介与安装> (一)

Git,开源中国以及GitHub所使用的系统, Is A 一个分布式版本控制系统 Be Used to 为团队合作写代码提供方便的管理系统.几乎满足你所有关于合作写代码的幻想. Has 本地端:工作区.版本库 (版本库还含有一个暂存区) 远程仓库:版本库(用来储存版本库的服务器) How To Install Linux: 首先,先输入git,看看是否安装Git: $ gitThe program 'git' is currently not installed. You can install

git(学习之二)编译安装

Git学习笔记#####################################################qq:1218761836 qq群:150181442##################################################### Git安装1.    Yum安装gityum install git –yyum install -y  git-email git-gui gitk git-svn git-cvs    其中git-svn  git

GIT 学习手册简介

本站为 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作类型划分,并且将提供日常使用中需要的一些常用的命令以及参数. 本手册将从入门到精通指导大家. 首先,我们要从如何以 Git 的思维方式管理源代码开始. 如何以 GIT 的方式思考(这节可以不用看懂,接着看下面的内容,看完就全懂了.) 懂得 Git,第一件重要的事情就是要知道它与 Subversion.Perforce 或者任何你用过的版本控制工具都有着很大的差别. 通常,

git学习之简介(一)

一.前言 史上最浅显易懂的Git教程! 为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,总之,初学者很难找到一个由浅入深,学完后能立刻上手的Git教程. 既然号称史上最浅显易懂的Git教程,那这个教程有什么让你怦然心动的特点呢? 首先,本教程绝对面向初学者,没有接触过版本控制概念的读者也可以轻松入门

Redis 学习之简介及安装

一.redis简介 Redis是一个开源的,先进的key-value存储.它通常被称为数据结构服务器,因为键可以包含字符串.哈希.链表.集合和有序集合. 支持的数据类型:string(字符串).list(集合).set(集合).zset(有序集合). 支持的操作:这些数据类型支持push/pop.add/remove 等丰富的数据操作.支持不同方式的排序. 缓存:redis为了保证效率数据都是缓存在内存中的,为了防止系统突然崩溃从而导致内存中的数据丢失,它也可以周期性的把更新的数据写入磁盘或者把

redis学习——day01_redis简介与安装

一.Redis 简介 1.1 Redis是什么 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redis提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes ,当然还有和Memcached一样的 strings结构.Redis当然还包括了对这些数据结构的丰富操作. Redis常被称作是一款数据结构服务器(data structure server).

git学习笔记一:eclipse安装git插件

1.打开eclipse,点击在help->Install New Software,打开如下界面: 2.点击add按钮,按照下图填入 3.点击ok,一路next,安装好后,重启eclipse. 4.其他插件也同样的操作,如SVN. SVN Location:http://subclipse.tigris.org/update_1.8.x 原文地址:https://www.cnblogs.com/huanlingjisi/p/8782390.html

Git学习收获(一)

写在前面:本系列均学习受教于廖雪峰前辈,基于windows系统: https://www.liaoxuefeng.com/ Git是一种先进的分布式版本控制系统.(据说是世界最先进) 版本控制:简单说就是--持续记录你的更改记录,便于留底.同时支持与他人协同工作. 记得整理一个掺杂个人使用习惯的Git命令总结. 一.Git学习收获--第一次 下载安装Git  https://git-scm.com/downloads 启动Git Bush ->命令行窗口模式: 自报家门(用户名.地址): $ g

Git学习:版本控制、Git简介与安装

1.什么是版本控制(Version Control) 2.Git简介 3.Git的安装 3.1 Linux环境下安装Git 3.2 Windows环境下安装Git 1.什么是版本控制(Version Control) 如果你长期使用过某个软件,或者长期玩过某款游戏,那你就应该听说过“版本”一词,甚至遇到过软件版本的更新,比如腾讯QQ最新版是9.1.6版本,英雄联盟最新版是9.14版本.从用户的角度来说,软件的版本往往是越新越好,因为越新的版本一般意味着更多的功能.更好的界面以及更少的BUG.但是