git-flow[实战系列]

安装

windows 安装git之后貌似自带git flow

初始化

跟composer init,git init 一样,git flow也需要初始化,初始化之后会有两个分支master,develop

//可以重命名各分支
$ git flow init
Initialized empty Git repository in /Users/tobi/acme-website/.git/
//生产分支,如果有用到gogs,gitlab等工具,合并master代码需要审核的情况下,master要用别的名字,例如gitflowmaster
Branch name for production releases: [master] 
//开发分支
Branch name for "next release" development: [develop] 
//新功能分支前缀
How to name your supporting branch prefixes?
Feature branches? [feature/] 
//发布分支前缀
Release branches? [release/] 
//热修复分支前缀
Hotfix branches? [hotfix/] 

创建 feature

开发一个新功能,创建一个新分支foo

$ git flow feature start foo

等价于

//切换到develop分支,确保新的 feature 分支是基于最新的 develop 分支创建的。
$ git checkout -b feature/foo develop

舍弃 feature

取消正在进行中的功能分支,并且会将分支删除

$ git flow feature delete foo

等价于

$ git branch -D feature/foo

完成 feature

foo功能自测通过后,合并到develop

$ git flow feature finish foo

等价于

//切换到 develop 分支
$ git checkout develop
//将 feature/foo 分支中的更改合并到 develop 分支。 --no-ff 参数将保留 foo 分支的commit记录。
$ git merge --no-ff feature/foo
//删除已完成的分支。
$ git branch -d feature/foo

创建 release

当所有新的功能和必要的修复已经被彻底的测试过了,那就开始生成一个新的 release ,在此之后不能添加新功能,只有错误修复、文档生成和其他面向发布的任务应该在该分支中进行。

//1.0.0 是版本号
$ git flow release start 1.0.0

等价于

//从 develop 分支 创建release分支
$ git checkout -b release/1.0.0 develop

舍弃 release

取消正在进行中的发布分支,并且会将分支删除。

$ git flow release abort 1.0.0

等价于

git branch -D release/1.0.0

完成 release

添加完发布文档之后,完成 release

$ git flow release finish 1.0.0

等价于

//切换到 develop 分支。
$ git checkout develop
//将 release/1.0.0 分支合并到 develop 分支,--no-ff 选项以保留 feature 分支的 commit 记录
$ git merge --no-ff release/1.0.0
//创建一个名为 1.0.0 的标签
$ git tag -a 1.0.0 -m "Release 1.0.0"
//切换到 master 分支。
$ git checkout master
//将 release/1.0.0 分支合并到 master 分支,--no-ff 选项以保留 feature 分支的 commit 记录
$ git merge --no-ff release/1.0.0
//删除 release/1.0.0 分支。
$ git branch -d release/1.0.0

创建 Hotfixes

线上发生问题的时候,先回滚到之前的稳定版本,稳定局势
然后创建热修复分支开始改BUG

$ git flow hotfix start 1.0.1

等价于

//从master分支 创建一个hotfix/1.0.1分支
$ git checkout -b hotfix/1.0.1 foo master

完成 Hotfixes

紧急修复完毕

$ git flow hotfix finish 1.0.1

等价于

//切换 master 分支
$ git checkout master
//合并热修复分支到master,--no-ff 选项以保留 feature 分支的 commit 记录
$ git merge --no-ff hotfix/ohno
//创建一个名为 1.0.1 的标签
$ git tag 1.0.1
//切换到 develop 分支
$ git checkout develop
//合并热修复分支到 develop ,--no-ff 选项以保留 feature 分支的 commit 记录
$ git merge --no-ff hotfix/1.0.1
//删除热修复分支
$ git branch -d hotfix/1.0.1

phpstorm+gogs实际使用过程

phpstorm有集成gitflow这个功能

  1. git flow

git-flow[实战系列]

git-flow[实战系列]

  1. 创建开发分支

git-flow[实战系列]

git-flow[实战系列]
本地分支自动切换到feature/fortest

  1. 结束开发分支

git-flow[实战系列]

  1. 创建发布分支
    git-flow[实战系列]

git-flow[实战系列]

本地分支自动切换到release/1.0.3

  1. 结束发布分支

git-flow[实战系列]
代码自动合并到gitflowmaster

  1. 本地切换到gitflowmaster

git-flow[实战系列]
git push 到gogs远程gitflowmaster分支

  1. gogs申请合并

git-flow[实战系列]

git-flow[实战系列]

剩下交给运维

本作品采用《CC 协议》,转载必须注明作者和本文链接
遇强则强,太强另说
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!