Git 是一个开源的分布式版本控制系统,用于高效的管理各种项目以及文件。同时,它也可以用来协调和管理开发人员的工作,您可以使用 Git 可以建立一个“项目组”,组内成员可在同一个工作区中一起工作,但又互不影响。Git 是由 Linus Torvalds 于 2005 年开发, Git 的诞生的初衷是为了帮助 Linux 内核开发项目实现版本控制。
Git 与其他版本控制工具相比,其具有高效、快速的性能,这主要源于它采用可分布式版本库的方式。其它常见版本控制工具有 SVN、CVS、Perforce 以及 ClearCase。
什么是版本控制?
那到底什么是版本控制呢?举一个简单的例子。
当您使用?Microsoft Word 修改文章时,想删除某个段落,但又犹豫要不要删除,因为删除后该段落就无法找回。于是您将当前文档另存为一个新的文档,反复如此,直到结束 Word 文档竟然保存了十几个。过了几天,您想找回被删除的文字,但是您却忘记了这段文字在哪一个文档中,您只好挨个查找,这非常麻烦。还有另外一种情景,您和您的同事同时修改一篇文章,并且需要将修改后的文章整合在一起,这显得特别麻烦。
版本控制就是为了解决上述问题的。版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。同时,Git 还提供了合并分支的功能,能够将不同节点上的内容进行合并。
Git的结构
Git 结构主要分为工作区(workspace)、暂存区(staging area)、本地仓库(repository)以及远程仓库(remote repository),如下所示:
图1:Git工作流程
- 工作区:项目所在操作目录,实际操作项目的区域。
- 暂存区:用于记录工作区的工作(修改)内容。
- 本地仓库区:用于备份工作区的内容,实际上是本地计算机的一个存储目录。
- 远程仓库区:远程主机上的 GIT仓库,远程仓库一般指在?GitHub?建立的仓库。
Git的特点
Git 基于分布式实现了版本控制,其主要有以下特点:
- Git 是开源的,多在 Linux 下使用,可以管理各种文件。
- Git 是分布式的项目管理工具,而 SVN 是集中式版本控制。
- Git 数据管理更多样化,分享速度快,数据安全。
- Git 拥有更好的分支支持,方便多人协调。
- 支持离线工作,即使在无网络连接状态下,也不会影响工作。
Git与SVN对比
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS)和工作管理系统,而 SVN 主要用于版本控制。SVN 是 subversion 的缩写,也是一个开放源代码的版本控制系统,通过采用分支系统实现高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
下面介绍了 Git 与 SVN 的区别,如下所示:
- Git 是基于分布式管理,而 SVN 是集中式的,它拥有一个中央服务器,这是 Git 和其它非分布式的版本控制系统最核心的区别。
- Git 把内容按元数据方式存储,而 SVN 是按文件,它把文件的元信息隐藏在一个类似 .svn 目录中。
- Git 的内容安全性要优于 SVN,Git 的内容存储使用的是 SHA1 哈希算法,这确保代码的安全性,当遇到磁盘故障和网络问题时降低对版本库的破坏。
学习 Git 命令,请移步《Git 命令详解》
|