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 分支原理介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Hit Refresh

Hit Refresh

Satya Nadella、Greg Shaw / HarperBusiness / 2017-9-26 / USD 20.37

Hit Refresh is about individual change, about the transformation happening inside of Microsoft and the technology that will soon impact all of our lives—the arrival of the most exciting and disruptive......一起来看看 《Hit Refresh》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

html转js在线工具
html转js在线工具

html转js在线工具