git 分支原理介绍

参考文章
git-分支简介
工作原理
git 的工作原理:
git 版本控制是通过保存不同时间点的快照实现的。git 在提交操作时,git 会保存一个提交对象,该提交对象中会包含:

用户名
邮箱
提交信息
父指针,自然的,首次提交的对象是没有父指针的,之后提交的对象才有父指针

指向树对象的指针(树对象:git 通过计算每个子目录的校验和,将其保存为树对象)

目录结构

blob 对象索引

git 的分支,其实本质上是指向提交对象的可变指针。由于创建分支的高效性,所以,git 鼓励开发人员创建分支!
原理说明
首先在创建 git 项目的时候,默认会创建 master 分支!这个 master 分支正常应该是指向最新一次提交。
head
|
master
|
one <- two <- thr
假设这个时候,用户做了些修改,然后提交:
head
|
master
|
one <- two <- thr <- four
从上述两个过程可以看出,master 分支实际就是一个指向某次提交的指针!会根据用户的提交自动向前移动指向最新一次提交。
如果用户新创建了一个分支(test)呢:
git branch test
他的实际结果就是如下:
head
|
master
|
one <- two <- thr <- four
|
test
因为这个时候用户在 master 分支下,用户再次做出修改提交:
test
|
one <- two <- thr <- four <- five
|
master
|
head
如果这个时候用户切换到 test 分支(git checkout test),做些修改然后再次提交:
head
|
test
|
<- five-for-test
one <- two <- thr <- four
<- five
|
master
产生了一个新的分支!!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理