第一步:初始化提交

master分支:

          图 1

 

所有分支

          图 2

 

第二步:基于master分支创建 dev/test 两个分支

          图 3

创建完成

          图 4

红色的是表示当前工作目录所在分支

          图 5

 

 目前为止当前分支和所有分支的graph没有什么不同

            图 6

 

接下来把代码push到dev上,当前分支和所有分支效果一样如下,所以这里只展示一个图

          图 7

 

 接下来把分支切换到test上效果和上图一样,

把代码push到test分支上,效果如下

           图 8

这里有个细节需要注意一下,就是基于master分支创建的dev和test分支,把master分支代码直接push到这两个分支即可,不需提交(可能这不是什么问题,但是对已小白来说是第一次知道这个事)

 

这里做了一个测试就是创建tag对应版本号为v1.0.0,如下:

            图 9

 

 开发分支qliu_demo_20180723 comment代码:(commit和push前后 all  Branches选中和不选中效果是一样的)

          图 10

 

 

  开发分支qliu_demo_20180723 push代码:

          图 11

 

从commit 和 push 前后操作对比可以看出,只commit会有提交记录,但是没有远程分支,push操作之后,远程会有一个远程分支(push之后橙色背景的分支)与之对应

 

继续在qliu_demo_20180723分支做开发,commit代码:

          图 12

 

 push代码:

          图 13

 

开发阶段的n次本地commit和push,这个过程也可以n次commit,最后只做一次push操作;push完成之后,把代码merge到dev分支,本地切换到dev分支,依次执行fetch,pull(这里是防止代码冲突,如果确定代码不会冲突可以跳过fetch直接pull操作)

 

这时候分别切换到 master、dev、test、qliu_demo_20180723是个分支graph图如下:

master:

          图 14

 

dev:

          图 15

 

test:

          图 16

 

qliu_demo_20180723:

          图 17

 

截至目前是只有一个开发者在操作,接下来在创建一个分支模拟两个操作者同时开发,(多个开发者类似,每个人有自己的分支),新建分支user/zhang_demo_20180723分支(红色):

          图 18

 

commit代码:

          图 19

push代码:(这样commit,push操作连续三次,后两次就不截图了):

 

          图 20

三次操作完的结果:

          图 21

 

 这时候把代码merger到dev上,图下:

          图 22

 

再次切换到qliu_demo_20180723分支开发执行commit,push,merger到dev分支上:

          图 23

 

此时切换到dev上,fetch,pull代码,graph图如下:

          图 24

 

这时候如果需要对已有功能测试,测试需要pull各个开发者分支的代码到test上,如下:

此时pull第一个开发者的代码(user/qliu_demo_20180723)如下:

          图 25

          图 26

 

接着pull第二个开发者代码(zhang_demo_20180723)如下:当前test分支

 

          图 27

 

master分支:graph黑色表示当前分支master,红色表示test,绿色表示zhang_demo_20180723,蓝色表示qliu_demo_20180723,灰色的表示在蓝色分支上有两次commit和push,一次merger,

从历史记录看出提交记录和顺序,一个节点代表着一次commit

红色线条第一个节点,表示从蓝色分支(qliu_demo_20180723)pull代码,第二个节点表示从绿色节点(zhange_demo_20180723)pull代码

          图 28

 

所有分支:

          图 29

 

模拟实际开发分支commit代码的过程,这里主要是用主分支master,开发分支dev,测试分支test,本地分支qliu_demo_20180723,zhang_demo_20180723,

 

该开发流程是这样的,基于开发分支建立本地方分支qliu和zhang两个分支,开发完成commit,push,merger到dev上,test分支pull本地分支qliu和zhang对应的远程分支代码,测试完成,master主分支pulltest分支代码。

 

 补充说明一下本地分支和远程分支:

          图 30(本地分支)

 

 

          图 31(远程分支)

图30和图31对比可以看出本地分支commit代码的是时候远程会产生一个名字一样的远程分支,如果没有提交,这没有

 

posted on 2018-07-24 17:26  Sincerity  阅读(590)  评论(0)    收藏  举报