GIT学习(一)_GIT简介

一、GIT发展介绍

这里写图片描述
GIT是一个版本控制系统。GIT的作者是Linux之父Linus的第二个作品,是为了解决软件开发过程中,版本控制问题而诞生的。

版本控制(Revision control)

版本控制通过文档控制记录程序各个模组的修改情况,为每次改动设置唯一ID标识。这种方法是工程图(enginnering drawings)维护的标准做法。它伴随工程图的诞生一直到定型。一种简单的版本控制形式。例如,第一次绘制的工程图版本信息为“A”,第二次又改动后的版本信息为“B”,每次修改之后都会产生一个版本号。
如果在一个多人协作的开发之中没有引入任何版本控制,只是靠人为的进行控制,那么最大的问题是代码冲突。比如,出现大量代码覆盖。对于这样的版本控制工具,最早的是CVS,开源免费,效率不高。

CVS(Concurrent Version System)

CVS版本控制系统是一种GNU软件包,主要用于多人开发环境中的代码维护。CVS用copy-modify-merge(拷贝-修改-合并)变化表支持对文件的同时访问和修改。CVS是基于客户端/服务器(也就是通常所说的B/S)的行为使其可容纳多个用户同时工作。
这里写图片描述

SVN(Subversion)

CVS作为最早的开源免费的集中式版本控制系统,在发展工程中,本身的不足也是制约其发展的关键因素。由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。在CVS之后出现在大众视线的就是修正了诸多CVS不足之后的SVN,目前使用最广泛的集中式版本控制系统。
这里写图片描述

CVS和SVN都是在Linux下发展起来的一种技术,SVN 是为了弥补CVS的不足而诞生的技术。CVS和SVN使用都有一个前提:必须链接网络后才可以使用,如果没有网络,那么就无法使用。

GIT

GIT(the stupid content tracker,傻瓜式内容跟踪器)。是目前为止最好用的分布式版本控制工具,同时也是免费开源的,用于敏捷高效地处理任何或大或小的项目。分布式相对于集中式的最大区别在于开发者可以提交到本地,每个开发者机器上都是一个完整的数据库。

GIT的主要特点

  • 从服务器上克隆数据库(包括代码和版本信息)到单机上;
  • 在自己的机器上创建分支,修改代码;
  • 在单机上自己创建的分支上提交代码;
  • 在单机上合并分支;
  • 创建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并;
  • 生成补丁(patch),把补丁发送给主开发者;
  • 看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,就通过。
  • 一般开发者之间解决冲突的方法,开发者之间可以使用pull命令解决冲突,解决完冲突之后再向主开发者提交补丁。

GIT与SVN的区别

  • Git是分布式版本控制系统,而SVN是集中式的。分布式与集中式的最大区别在于不需要集中式的版本库,每个人都可以工作在通过克隆建立的本地版本库中。换言之,每个人都具有一个完整的版本库
  • Git版本库的是按照元数据存储的,而SVN则是按照文件存储。具体而言就是,通过Git克隆的本地版本库下的.git目录只会存储元数据,而SVN仓库下的.svn目录会包含原始文件的拷贝
  • Git的版本号的全球唯一的哦。Git使用了SHA-1(40个十六进制数字)算法保证了版本号的全球唯一,Linus指出使用SHA-1算法的目的是保证数据的完整性。理论上对其进行哈希碰撞(hash collision,不同的两块数据有相同的hash值)的攻击可以在2^51(2的51次方)左右的次数内实现。也就是两个版本号冲突的机率是1/2^51

GIT的分支管理

在不同的分支上可以进行同一项目的修改,并且利用合并分支快速的提交项目。
这里写图片描述

二、安装GIT

取得GIT,下载地址:https://git-scm.com,下载安装根据自己的电脑系统选择合适的版本,根据提示完成安装,安装完成之后打开cmd窗口,进行测试,输入git,如图所示代表成功。
这里写图片描述
安装完成之后就可以使用了。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章