git 分支原理介绍

栏目: 编程工具 · 发布时间: 6年前

内容简介:自然的,首次提交的对象是没有父指针的,之后提交的对象才有父指针。

参考文章

工作原理

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

产生了一个新的分支!!


以上所述就是小编给大家介绍的《git 分支原理介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数学建模(原书第5版)

数学建模(原书第5版)

[美] Frank R. Giordano、[美] William P.Fox、[美] Steven B.Horton / 叶其孝、姜启源 / 机械工业出版社 / 2014-10-1 / 99.00元

《华章数学译丛:数学建模(原书第5版)》旨在指导学生初步掌握数学建模的思想和方法,共分两大部分:离散建模和连续建模,通过本书的学习,学生将有机会在创造性模型和经验模型的构建、模型分析以及模型研究方面进行实践,增强解决问题的能力。 《华章数学译丛:数学建模(原书第5版)》对于用到的数学知识力求深入浅出,涉及的应用领域相当广泛,适合作为高等院校相关专业的数学建模教材和参考书,也可作为参加国内外数......一起来看看 《数学建模(原书第5版)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具