0%

Git的分支管理级Git的基本原理

分支的意义

  • 分支是主干(master)的复制品,可以进行试错,可以删除,也也可以合并回主干

  • 分支更加专业化,分支之间互不干扰

  • 可以多人同时开发不同分支,增加开发效率

分支操作

查看所有分支命令:git branch -v

创建新的分支:git branch 分支名

image-20220110195627374

分支的切换:git checkout 分支名

image-20220110195754653

用hot_fix分支修改文件

image-20220110200141530

若要将hot_fix分支合并到master分支上,则要切换到master分支上(即被合并的分支)

合并命令:git merge 分支名

image-20220110200612093

当分支有冲突时(即两个分支都对同一地方进行了修改)

首先要产生冲突

image-20220110201910358

产生冲突后看产生冲突的文件内容

image-20220110202059391

删除多于内容后(可在阅览模式下双击d键删除一行)

image-20220110202632027

保留自己想要的内容,然后git add 文件名git commit -m "备注"提交

image-20220110203321229

Git基本原理

哈希算法

哈希是一个系列的加密算法,各个不同的哈希加密虽然加密强度不同,但是有以下几个共同点

  • 不管输入的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定。
  • 哈希加密确定,输入数据有变化,输出数据一定有变化,而且变化程度很大。
  • 哈希算法确定,输入数据确定,输出数据能够保证不变。
  • 哈希算法不可逆

Git底层采用的是SHA-1算法。

哈希算法可以被用来验证文件。原理如下

image-20220111095840028

Git就是靠这种操作从根本上保证数据的完整性。

Git保存版本机制

首先讲一下集中式版本控制工具的文件管理机制

以文件变更列表的方式存储信息。这类系统将它们保存的信息看作时一组基本文件和每个文件随时间逐步积累的差异。也就是只保存更改的地方

image-20220111101222004

然后是Git的文件管理机制

Git把数据看作是小型文件系统的一组快照,每次提交更新时,Git都会对当前的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git不再重新存储该文件。所以Git的工作方式可以称之为快照流。

image-20220111103051918

Git的提交对象

image-20220111103632587

提交对象及其父对象形成的链条

image-20220111103823481

Git分支管理机制

分支的创建

image-20220111104023440

testing指针和master指针在同一链条,而不是为testing单搞一条链,节省了储存空间

分支切换(改变HEAD指针的位置)

image-20220111121831087

当分支文件不一样时,才会出现分支

image-20220111122101487

Git在本地的版本控制就完结了