git版本神器gitflow以及与maven结合使用

7 篇文章 0 订阅
7 篇文章 0 订阅

分支及名词

develop分支

一般情况下,普通开发分支(最前沿的分支)都是dev分支,在这上面进行小功能开发、bug修复后合并、大功能合并等等

master分支

也可以交release分支,是正式版本,不允许在这个分支上进行任何的修改、提交操作,只允许通过工具或者脚本进行合并、tag、release、hotfix等操作

feature分支

这个一般情况下是模块、大功能开发,为了不影响到dev分支,每个开发人员单独拉取一个分支进行开发,然后测试无误后,和dev进行合并

这个原理在hotfix以及release经常被用到

hotfix

通常叫做:打补丁。除了bug之后,在dev上面进行修改,然后在master checkout出来一个hotfix版本号的分支,将dev的commit id进行合并(这里可能出现错误,因为dev已经走很远了),解决错误,发布demo环境测试,没问题之后,合并master,灰度(或者小型蓝绿)发布正式环境

release

这个过程和hotfix有点接近,但是是直接在dev上面合并到master,测试无误进行发布版本和tags

Git flow工具

安装

OS X

brew install git-flow

Linux

apt-get install git-flow

Windows
使用shell小工具

wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash

使用

初始化: git flow init

开始新Feature: git flow feature start MYFEATURE

Publish一个Feature(也就是push到远程): git flow feature publish MYFEATURE

获取Publish的Feature: git flow feature pull origin MYFEATURE

完成一个Feature: git flow feature finish MYFEATURE

开始一个Release: git flow release start RELEASE [BASE]

Publish一个Release: git flow release publish RELEASE
发布Release: git flow release finish RELEASE
别忘了git push --tags
开始一个Hotfix: git flow hotfix start VERSION [BASENAME]

发布一个Hotfix: git flow hotfix finish VERSION

maven与gitflow结合

首先引入工具:

<plugin>
   <groupId>external.atlassian.jgitflow</groupId>
   <artifactId>jgitflow-maven-plugin</artifactId>
   <version>1.0-m5.1</version>
</plugin>

hotfix

dev上修复bug之后,提交,然后获取提交的commitID,例如:1f8b31bc477cfff7ef18880a9855f56ae1106625

git checkout master
git pull
## 这里先用git log查看一下之前的hotfix是什么版本号,然后下面写这次hotfix的版本号,比如上一次是0.52.5, 那这次定0.52.6
mvn jgitflow:hotfix-start -DautoVersionSubmodules=true -DreleaseVersion=0.52.6

—hotfix branch
## 这里可以执行多次cherry-pick,相当于打多个提交的补丁,如果代码有依赖,必须按照提交的顺序来cherry-pick
git cherry-pick 1f8b31bc477cfff7ef18880a9855f56ae1106625
mvn jgitflow:hotfix-finish -DnoHotfixBuild=true -DconsistentProjectVersions=true

git push
git checkout master
git push

git push —tags

如图:

在这里插入图片描述
在这里插入图片描述

release

git checkout master
git pull
## 这里先用git log查看一下之前的release是什么版本号, 这里会直接改掉pom中相关项目的version
mvn jgitflow:release-start -DautoVersionSubmodules=true -DreleaseVersion=<version>
mvn jgitflow:release-finish -DnoReleaseBuild=true

git push
git checkout master
git push

git push —tags

在这里插入图片描述

tags

最后push --tags直接打一个版本标签,这样会记录所有发布过的版本和补丁,方便统计和回滚,如下图:
在这里插入图片描述

结束语

博主团队定下的版本号

1.1.111
即:超大版本号.release版本号.hotfix版本号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值