git flow 使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/quanqxj/article/details/78133778

下面是GitFlow的流程图


GitFlow常用的分支

  • Production分支

也就是我们经常使用的Master分支,这个分支最近发布到生产环境的代码,最近发布的Release,这个分支只能从其他分支合并,不能在这个分支直接修改

  • Develop分支

这个分支是我们是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支

  • Feature分支

这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release

  • Release分支

当你需要一个发布一个新Release的时候,我们基于Develop分支创建一个Release分支,完成Release后,我们合并到MasterDevelop分支

  • Hotfix分支

当我们在Production发现新的Bug时候,我们需要创建一个Hotfix,完成Hotfix后,我们合并回MasterDevelop分支,所以Hotfix的改动会进入下一个Release

GitFlow如何工作

初始分支

所有在Master分支上的Commit应该Tag

Feature分支

分支名 feature/*

Feature分支做完后,必须合并回Develop分支,合并完分支后一般会删点这个Feature分支,但是我们也可以保留

Release分支

分支名 release/*

Release分支基于Develop分支创建,打完Release分之后,我们可以在这个Release分支上测试,修改Bug等。同时,其它开发人员可以基于开发新的Feature(记住:一旦打了

Release分支之后不要从Develop分支上合并新的改动到Release分支)

发布Release分支时,合并ReleaseMasterDevelop,同时在Master分支上打个Tag记住Release版本号,然后可以删除Release分支了。

维护分支 Hotfix

分支名 hotfix/*

hotfix分支基于Master分支创建,开发完后需要合并回MasterDevelop分支,同时在Master上打一个tag

GitFlow代码示例

a.创建develop分支

gitbranch develop(创建分支)

gitbranch(查看本地所有分支)

gitbranch-a(查看所有分支)

gitflow init –d(初始化)

gitpushorigin develop(从本地推送到远程)

b.开始新Feature开发

gitflow feature start login(创建分支)

gitcheckout -b feature/login develop(创建分支)

#做一些改动

gitstatus

gitadd some-file

gitcommit(提交)


c.完成Feature

gitpushorigin feature/login(推送到远程)

gitcheckout develop/master(切换分支)

gitpull origin develop(下拉代码)

gitmerge--no-fffeature/login

gitpush origin develop(推送)

gitflow feature finish login(分支本地完成自动合并到develop并删除)

gitbranch -dfeature/login

#Ifyou pushed branch toorigin:

gitpush origin--deletefeature/login



d.开始Relase

gitflow release start 1.0.0 (创建预发布版本)

gitcheckout -brelease-1.0.0develop(创建预发布版本)

git

#Optional: Bumpversionnumber,commit

#Preparerelease,commit

e.完成Release

gitcheckout master

gitmerge--no-ffrelease-0.1.0

gitpush



gitcheckout develop

gitmerge--no-ffrelease-0.1.0

gitpush



gitbranch -drelease-0.1.0



#Ifyou pushed branch toorigin:

gitpush origin--deleterelease-0.1.0





gittag -a v0.1.0master

gitpush--tags

f.开始Hotfix

gitcheckout-bhotfix-0.1.1master

g.完成Hotfix

gitcheckoutmaster

gitmerge--no-ffhotfix-0.1.1

gitpush





gitcheckoutdevelop

gitmerge--no-ffhotfix-0.1.1

gitpush



gitbranch-dhotfix-0.1.1



gittag-av0.1.1master

gitpush--tags



平时一些常用的git命令如下:

一、远程仓库有 master dev 分支

1. 克隆代码

gitclone https://github.com/master-dev.git


#这个git路径是无效的,示例而已


2.查看所有分支


gitbranch --all


#默认有了devmaster分支,所以会看到如下三个分支


#master[本地主分支]origin/master[远程主分支]origin/dev[远程开发分支]


#新克隆下来的代码默认masterorigin/master是关联的,也就是他们的代码保持同步


#但是origin/dev分支在本地没有任何的关联,所以我们无法在那里开发


3.创建本地关联origin/dev的分支


gitcheckout dev origin/dev


#创建本地分支dev,并且和远程origin/dev分支关联,本地dev分支的初始代码和远程的dev分支代码一样


4.切换到dev分支进行开发


gitcheckout dev #这个是切换到dev分支,然后就是常规的开发

5.为了更好的理解,最好继续看看下文。

二、假设远程仓库只有 mater 分支

1. 克隆代码

gitclone https://github.com/master-dev.git


#这个git路径是无效的,示例而已


2.查看所有分支


gitbranch --all


#默认只有master分支,所以会看到如下两个分支


#master[本地主分支]origin/master[远程主分支]


#新克隆下来的代码默认masterorigin/master是关联的,也就是他们的代码保持同步


3.创建本地新的dev分支


gitbranch dev #创建本地分支


gitbranch #查看分支


#这是会看到masterdev,而且master上会有一个星号


#这个时候dev是一个本地分支,远程仓库不知道它的存在


#本地分支可以不同步到远程仓库,我们可以在dev开发,然后mergemaster,使用master同步代码,当然也可以同步


4. 发布 dev 分支

发布 dev 分支指的是同步 dev 分支的代码到远程服务器

gitpush origin dev:dev #这样远程仓库也有一个dev分支了


5.dev分支开发代码


gitcheckout dev #切换到dev分支进行开发


#开发代码之后,我们有两个选择


#第一个:如果功能开发完成了,可以合并主分支


gitcheckout master #切换到主分支


gitmerge dev #dev分支的更改和master合并


gitpush #提交主分支代码远程


gitcheckout dev #切换到dev远程分支


gitpush #提交dev分支到远程


#第二个:如果功能没有完成,可以直接推送


gitpush #提交到dev远程分支


#注意:在分支切换之前最好先commit全部的改变,除非你真的知道自己在做什么


6.删除分支


gitpush origin :dev #删除远程dev分支,危险命令哦


#下面两条是删除本地分支


gitcheckout master #切换到master分支


gitbranch -d dev #删除本地dev分支




猜你喜欢

转载自blog.csdn.net/quanqxj/article/details/78133778
今日推荐