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

2019年12月07日 阅读数:11
这篇文章主要向大家介绍git版本神器gitflow以及与maven结合使用,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

分支及名词

develop分支

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

master分支

也能够交release分支,是正式版本,不容许在这个分支上进行任何的修改、提交操做,只容许经过工具或者脚本进行合并、tag、release、hotfix等操做github

feature分支

这个通常状况下是模块、大功能开发,为了避免影响到dev分支,每一个开发人员单独拉取一个分支进行开发,而后测试无误后,和dev进行合并web

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

hotfix

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

release

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

Git flow工具

安装

OS Xsvg

brew install git-flow工具

Linux测试

apt-get install git-flowui

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版本号