zoukankan      html  css  js  c++  java
  • git分支的创建与分支之间合并的底层原理

    开发一个版本,采用的发布流程:

    (1).从master的最新代码拉取一个开发分支,在上面进行开发(这里假设开发分支为dev)

    (2).在开发分支上不断地进行提交版本,期间,master也会有因为其他版本上线而不停有版本合并

    (3).要发布的时候,把master代码重新合一遍到dev分支

    (4).发布完成了,把dev的代码合到master


    1.什么是分支

    分支是一个commit对象链:一条工作记录线


    git每一次提交版本,都会在该版本上存一个字段parent,记录的是上一个提交的版本号,这样就可以从一个提交的快照里拿到之前所有提交过的记录

    2.新建分支是如何操作的

    先了解2个重要的概念——HEAD和master:HEAD指向的就是当前分支(某个时刻你所处的分支),master指向提交

    (1)创建分支之前,HEAD指向master

    (2)创建分支dev,HEAD指针指向dev

    与svn不同的是,svn创建分支会把全部内容拷贝一份,git创建分支只会创建一个指针

     (3)开发的过程中,如果我们提交了代码,则指针情况是


    (4)这个时候,假设master没有新的内容,而你的版本要发布了,则不需要从master上合代码到dev,发版完毕以后,要把dev分支的内容合到master,指针情况是

    这种合并我们叫做fast-forward(快进,如果可能,合并分支git会使用这种模式,除非再合并时加上 --no-ff参数,这样就会多出一个commit_id)

    (5)在我们要发版的情况下,一般的情况是,master有新提交,我们自己也有提交在上面,所以,一般的示意图是

    (6)把master合到dev,准备发版(假设没有冲突,有冲突先解决)


    (7)发布完成,代码从dev再合到master,见步骤(4)

  • 相关阅读:
    [NOIP2010]引水入城
    [NOIP2009]靶形数独
    设计模式学习笔记——桥接模式(Bridge)
    BootStrap3.0学习--JavaScript 插件
    BootStrap3.0学习--组件
    BootStrap3.0学习--全局 CSS 样式
    BootStrap3.0学习--起步
    设计模式之第11章-建造者模式(Java实现)
    设计模式之第10章-桥接模式(Java实现)
    设计模式之第9章-原型模式(Java实现)
  • 原文地址:https://www.cnblogs.com/billmiao/p/9872176.html
Copyright © 2011-2022 走看看