Git原理

简介: Git原理

Git原理


Git重要原理

项目版本库:

       该版本库主要用于存储由“官方”创建并发行的版本。

共享版本库:

       该版本库主要用于开发团队内人员之间的文件交互,在小项目中,项目版本库本身就可以胜任这样的角色。但是在多点开发的条件下我们可能就需要几个这样的专用版本库。

工作流版本库:

       工作流版本库通常用于跳槽哪些代表工作流中某个特定进展状态的修改,例如审核通过之后的状态等。

派生版本库:

       该版本库主要用于从开发主线分离出某部分内容(例如,分离出哪些开发耗时较长,不适合在一个普通发布周期中完成的工作内容),或者隔离出可能永远不会被包含在主线中的、用于实验的那部分开发进展。

       其实,版本库本质上就是一个高效的数据存储结构而已,由以下部分组成。

       文件(即blob):这里既包含了文本也包含了二进制数据,这些数据将不以文件名的形式被保存。

       目录(即Tree):目录中保存的是与文件名相关联的内容,其中也会包含其他目录。

       版本(即commit):每一个版本所定义的都是相应目录的某个可恢复的状态。每当我们创建一个新的版本时,其作者、时间、注释以及其之前的版本都将会被保存下来。对于所有的数据,它们都会被计算成一个十六进制散列值(例如像1632acb65b01c6b621d6e1105205773931bb1a41 这样的值)。这个散列值将会被用作相关对象的引用,以及日后恢复数据时所需的键值(重复的情况是存在的,从数学的角度考虑,可能性是2的63次方分之一)。

       也就是说,一个提交对象的散列值实际上就是它的“版本号”,如果我们持有某一提交的散列值,就可以用它来检查对应版本是否存在于某一版本库中。如果存在,我们就可以将其恢复到当前工作区相应的目录中。如果该版本不存在,我们也可以从其他版本库中单独导入(拉回)该提交所引用的全部对象。

图1.1 版本库的对象存储方式

接下来,我们来看看采用这种散列值和这种既定的版本库结构究竟有哪些优势。

      高性能:通过散列值来访问数据是非常快的。

      冗余度—释放存储空间:相同的文件内容只需存储一次即可。

      分布式版本号:由于相关散列值是根据文件,作者和日期来计算的,所以版本也可以“离线”产生,不用担心将来会因此

而发生版本冲突。

       版本库间的高效同步:当我们将某一提交从一个版本库传递给另一个版本库时,只需要传送那些目标版本库中不存在的

对象即可。而正是因为有了散列值的帮助,我们才能很快地判断相关对象是否已经存在。

       数据完整性:由于散列值是根据数据的内容来计算的,所以我们可以随时通过Git 来查看某一散列值是否与相关数据匹

配。以检测该数据上可能的意外变化或恶意操作。

       自动重命名检测:被重命名的文件可以被自动检测到,因为根据该文件内容计算出的散列值并没有发生变化。也正因为

       如此,Git 中并没有专用的重命名命令,只需移动命令即可。

相关文章
|
3月前
|
Linux 网络安全 开发工具
1.Git使用技巧-基础原理
1.Git使用技巧-基础原理
34 0
|
6月前
|
Linux 网络安全 开发工具
【Git】Git 原理和使用
【Git】Git 原理和使用
387 4
|
1月前
|
存储 开发工具 git
Git的基本操作和原理
Git的基本操作和原理
17 4
|
3月前
|
存储 算法 开发工具
深入剖析Git对象底层原理
Git 在中间做了什么,它如何存储不同的文件和内容,以及如何区分不同分支下的文件版本呢?日常操作对这些自动的操作都是无感的。 但是如果哪天一旦上述操作中出现了错误,需要找回自己的代码时,如果不懂 Git 其内部存储原理,是没法找回的,因此为了避免这种情况,就有必要去了解其内部的存储——Git 对象的原理。
15 0
深入剖析Git对象底层原理
|
3月前
|
缓存 开发工具 git
推荐收藏 | 【Git实战专题】「必坑宝典」带你深入剖析Git操作指令下的奥秘原理和运作机制
Git是一个分布式版本控制系统,它可以跟踪文件的修改、记录历史版本,并支持多人协作开发。
40 2
推荐收藏 | 【Git实战专题】「必坑宝典」带你深入剖析Git操作指令下的奥秘原理和运作机制
|
8月前
|
存储 开发工具 git
Git 的工作原理
简述 Git 的工作原理,三个主要的区域等
143 0
Git 的工作原理
|
4月前
|
存储 算法 开发工具
Git - 分支基本实践总结与工作流原理
Git - 分支基本实践总结与工作流原理
63 0
|
4月前
|
存储 开发工具 git
您有一篇git 原理,请注意查收(二)
您有一篇git 原理,请注意查收(二)
|
4月前
|
存储 前端开发 持续交付
您有一篇git 原理,请注意查收(一)
您有一篇git 原理,请注意查收(一)
|
6月前
|
存储 Linux 开发工具
Git简介与工作原理:了解Git的基本概念、版本控制系统和分布式版本控制的工作原理
Git简介与工作原理:了解Git的基本概念、版本控制系统和分布式版本控制的工作原理
211 0