Git基本原理

为什么学习git原理?

学习git的基本原理有利于理解git命令背后的运行原理,
需要将脑子里面之前关于其他版本管理工具比如CVS、Subversion、Perforce的知识暂时忘掉,因为它们与git的使用是不太相同的

Git与其他版本管理工具的区别

其他版本工具比如VCS认为它们存储的信息是由一系列的文件组成,以及每个文件上做出的改动,
在这里插入图片描述
Git存储数据时认为数据更像是一系列的微型文件系统的快照,每次提交数据或者保存状态到git上时,Git会给所有文件生成快照,并为每个文件保存一个指向快照的引用,。
为了提高效率,git不会重复存储文件,它会保存一个指向前面已经保存的文件的链接。
Git认为数据更像是快照的数据流。

在这里插入图片描述

使用Git的优势

几乎所有的操作都在本地进行
所有数据都在本地,不需要从其他主机取数据,CVCS的大部分操作会受到网络延迟的影响,而Git则因为在本地取数据,显得更快。

实例:

  1. 如果你想浏览项目的历史,Git不需要去服务器去找项目的历史数据,本地数据库就存储了这些数据。
  2. 如果你想查看现在的项目和一个月前的项目有什么区别,Git会直接从本地数据库读取两个版本的数据,并进行比对,而不需要从远程服务器拉取一个月前的项目数据,再进行对比。

Git保证数据完整性

  1. 所有文件保存在Git上都有一个校验码,这意味着你不可能绕过Git去修改文件中的数据,这是Git最基本的功能,这保证了你在传输数据的过程中不会因为丢失数据而没有察觉,Git会检测到这一点。

  2. Git使用SHA-1hash算法来计算校验码,它是由40位字符的字符串组成(0-9 a-f)。
    例如24b9da6552252987aa493b52f8696cd6d3b00373

  3. Git在数据库中保存文件时保存的是内容的hash值而不是文件的名字。

Git的三个状态

Modified、staged、committed

  1. Modified:修改了文件内容但是还没有提交到数据库中
  2. Staged:已经在当前版本标记了修改的文件,等待提交。
  3. Committed:数据已经很安全的保存到本地数据库中。
    在这里插入图片描述

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

Git基本原理