git 文件都变红了_Git之纯纯的介绍

Git是目前最先进的版本控制管理系统。

本质上讲,git是一个内容寻址文件系统。其核心部分是一个简单的键值对数据库(key-value data store).你可以想像git仓库中插入任意类型的内容,它会返回一个唯一的键,通过该键可以在任意时刻再次取回该内容。

git先进在哪里?

  • 直接记录快照,而不是比较差异。这也是git和其他版本管理系统的主要差别。其他版本管理系统(CVS,Subversion,Perforce,Bazaar等)存储各个版本之间,每个文件随时间逐渐累积的差异。这类版本管理系统称为 基于差异的版本控制。如下图:

d124362b1804e69c86175b2f2fb8b236.png

  • git则不然,当你提交更新或者保存项目状态的时候,它基本上就会对当时的全部文件创建一个快照并保存这个快照的索引。为了效率,如果没有没有修改,git不再重新存储该文git件,而是只保留一个连接指向之前存储的文件。Git对待所管理的数据更像是一个快照流。如下图:

e69b19aa7c93d70dde781f3e0f6a00c4.png

  • git更像是一个小型的文件系统,而不只是一个简单的CVS。

  • git近乎所有操作都在本地执行 这意味着不管有无网络,你都可以工作。没有网络的时候,你照常可以提交代码,等到有网的时候,在进行上传到远程仓库。而使用SubversionCVS的话,只能修改文件,但是不能提交。

  • git保证完整性Git中所有的数据在存储前都计算校验和,然后以校验和来引用。这就是说,Git 会知道你所有的更改任何文件内容或者目录内容,这个是构成git哲学不可或缺的部分。Git使用计算校验和的机制叫做 SHA-1散列(hash,哈希)。这是一个由40个十六进制字符(0-9a-f)组成的字符串,基于Git中文件的内容和目录结构计算出来的。Git数据库中保存的信息都是以文件内容的哈希值来索引数据,而不是文件名。

  • Git一般都只添加数据 执行的所有的git操作,几乎只往数据库中添加数据。一旦你提交了快照到git中,就难以再丢失数据,特别是定期的推送到了远程仓库。

git的三种状态

git对文件的管理,有三种状态。

  • 已修改:表示修改了文件,但还没有保存到数据库中。
  • 已暂存:表示对一个已修改文件的当前版本做了标记,使之在下次提交的快照中。
  • 已提交:表示数据已经安全的保存到了本地的git数据库中。

这三种状态分别代表了git的三个工作区。工作区,暂存区以及git目录(版本库)。如下图

a1ad2f8258aab19e78e81828438fa2eb.png

工作区是对项目的某个版本独立提取出来的内容。这些从git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。

暂存区是一个文件,保存了下次将要提交的文件列表信息。git中称为索引,不过一般都是称为暂存区。Git仓库目录指的就是 .git目录(.git)。下节就从创建仓库开始学起。

最后

更多最新内容尽在方家小白,我在这里等你。我还是那个谦虚的小白,关注我不会错,期待和你一起学习进步。

46f134117c4bfa343f82da28b26c1b75.png

来都来了,点个赞,再走呗~

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值