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 。增量式文件系统的特点是:当文件变动发生提交时,该文件系统存储的是文件的差异信息。

      Git 学习(一)简介及安装   图 1. CVS、SVN 记录文件内容差异

 

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

      Git 学习(一)简介及安装   图 2. Git 记录整个文件快照

 

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

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

      Git 学习(一)简介及安装

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

 

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

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

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

        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

 

  Git Bash

    Git 学习(一)简介及安装  git bash 是Windows下的命令行工具

 

    Git Bash 窗口如下, git help 可以很方便的查阅帮助文档,是以 html 文档形式来呈现的。

    Git 学习(一)简介及安装

    Git 学习(一)简介及安装

 


 

    Windows系统下,有不少方便的工具,以下两个可选择性安装,但建议还是直接使用 Git Bash 命令行操作。

    TortoiseGit

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

        Git 学习(一)简介及安装    从 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/

      Git 学习(一)简介及安装

相关文章:

  • 2021-09-08
  • 2021-07-30
  • 2021-12-26
  • 2021-07-01
  • 2019-07-25
  • 2022-12-23
  • 2021-12-05
  • 2022-01-17
猜你喜欢
  • 2021-06-14
  • 2021-09-19
  • 2021-09-08
  • 2021-10-16
  • 2021-09-21
相关资源
相似解决方案