Lerix的git学习笔记(1)_git介绍

git 介绍

Git是什么?

Git是目前世界上最先进的分布式版本控制系统,由C编写

那什么是版本控制系统?

版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。——百度百科

简而言之:存储、追踪文件和文件夹的修改历史

git的特点——Git与SVN的主要差别

git在使用上与其他版本控制系统命令形式非常接近,但是在底层设计上,却有着巨大差异。理解这些差异,有助于防止使用中的困惑李

直接记录快照而非差异比较

  1. 在文件系统中,数据以数据块的形式存储在介质上,文件系统记录了每个文件对于的数据块编号。
  2. 所有的版本控制软件都不会简单通过复制备份实现文件版本记录。而是在文件系统层面实现的文件状态记录,即保存一个版本,并不是保存一个新文件备份,而是在更小的粒度的记录变化。
  3. git与其他版本控制系统的主要差别在于git对待数据的方法。其他版本控制系统以单个文件为单位,记录这个文件随时间累计的差异。而git是以整个项目为单位制作一个快照,并保存这个快照的索引。快照中再以单个文件为单位记录整个文件是否发生变化,发生变化才会重新存储该文件。
  4. 总结:git保存文件时保存的不是文件的变动或差异,而是一系列不同时刻的文件快照。

几乎所有操作都是本地执行

git与其他版本控制系统的另一大区别在于历史版本维护的位置

Git本地仓库:代码库还有历史库,在本地的环境开发就可以记录历史
其他如SVN:历史库存在于中央仓库,每次对比与提交代码都必须连接到中央仓库才能进行

得出git的优势:

  1. 使用git可以在脱机环境查看开发的版本历史。
  2. 多人开发时如果充当中央仓库的Git仓库挂了,任何一个开发者的仓库都可以作为中央仓库进行服务。

git保证完整性

git的底层设计是用文件的哈希值来索引的,故所有数据存储前都会计算校验和。这样增加了另一项特性——保证数据的完整性

git一般只添加数据

你执行的任何git操作,几乎都是在git数据库中增加数据。即便是你删除一个文件,在git中只会记录你把文件删除了,但并没有真正删除,文件只是不会再向你展示。当你随时回退到某次版本快照时,文件仍然在那儿。这使得git在数据恢复上具有极大的优势。

git的三个工作区域

  1. 工作目录

    工作目录是对项目的某个版本独立提出出来的内容。放在磁盘上供你使用和改动
    注意:当你切换不同分支时,工作目录也会切换到对应分支的工作目录。可以想象成每个分支有独立的工作目录。

  2. 暂存区域

    暂存区包含了即将被提交进入git仓库的文件。但暂存去本质是一个文件,保存的是列表信息

  3. git仓库

    git仓库保存了项目的元数据和对象数据库,也就是各版本提交历史快照。

git的三种文件状态

  1. 已提交committed

    文件所有内容已经保存进git仓库

  2. 已修改modified

    文件内容有改动,但没传达给git操作

  3. 已暂存staged

    文件的改动已经传达给git,git将其保存到了暂存区。

git的诞生小故事

很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。

Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?

事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!

你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。

不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。

安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。

Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:

Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。

Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值