基于jgitflow插件使用git flow

本文使用jgitflow插件简化实现git flow工作流程,具体流程参考Git工作流程最佳实践--git flow

开发流程:

每次开发从develop拉出feature分支,开发完成后合并到dev分支。

发布流程:

从develop分支检出release分支,测试完成后合并回develop分支和master分支

修复bug:

从master分支检出hotfix分支,测试完成后合并回develop(如果存在release,合并到release)分支和master分支

添加插件

pom 中加入jgitflow插件:

<plugin>
    <groupId>external.atlassian.jgitflow</groupId>
    <artifactId>jgitflow-maven-plugin</artifactId>
    <version>1.0-m3</version>
    <configuration>
        <!-- see goals wiki page for configuration options -->
        <flowInitContext>
            <masterBranchName>master</masterBranchName>
            <developBranchName>develop</developBranchName>
            <featureBranchPrefix>feature-</featureBranchPrefix>
            <releaseBranchPrefix>release-</releaseBranchPrefix>
            <hotfixBranchPrefix>hotfix-</hotfixBranchPrefix>
            <versionTagPrefix>loan-</versionTagPrefix>
        </flowInitContext>
        <username>name@9188.com</username>
        <password>yourpassword</password>
    </configuration>
</plugin>

使用命令

开始一个新功能

mvn jgitflow:feature-start -DfeatureName=myfeature -DallowSnapshots=true

完成一个新功能

开发完成,合并回dev分支,删除feature分支

mvn jgitflow:feature-finish

开始发布

自动拉出release分支并升级版本号。确保pom中没有snapshot版本的依赖。

在工程目录下执行命令:mvn jgitflow:release-start -DreleaseVersion=上线后的正式版本号 -DdevelopmentVersion=下一次使用的版本号 -DpushReleases=true -DallowSnapshots=true

如当前工程是1.0.0-SNAPSHOT版本,则上线后版本应为1.0.0,对应的下一次开发版本号为1.1.0-SNAPSHOT,此时命令为

mvn jgitflow:release-start -DreleaseVersion=1.0.0 -DdevelopmentVersion=1.1.0-SNAPSHOT -DpushReleases=true -DallowSnapshots=true

执行完成后,将在本地自动生成一个release分支,名为:release-1.0.0

完成发布

发布:将relase分支合并到master并打tag。执行命令

mvn jgitflow:release-finish -DnoReleaseBuild=true -DnoDeploy=true -DpushReleases=true

完成后relese自动合并到master并且打tag。

pom中的版本号也相应改变,这是此时dev分支的版本号:1.1.0-SNAPSHOT

最后在master分支上打包上线。

修复bug,创建hotfix分支

mvn jgitflow:hotfix-start -DallowSnapshots=true

修复bug完成

mvn jgitflow:hotfix-finish

build-number

命令:

mvn jgitflow:build-number -DbuildNumber=1.0.0

说明:

通过添加build版本号"-buildX"来修改当前分支中的pom版本号,其中“X”是通过参数传入的用来保证CI任务中每次构建的版本号是唯一的并且是非SNAPSHOT。

本文参考:jgit-flow 插件

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • 1 Git Flow介绍 我们都知道, 在 git 的分支功能相对 svn 确实方便许多,而且也非常推荐使用分支来...
    七寸知架构阅读 7,935评论 20 68
  • Git分支管理 master:主分支,当前分支上的代码随时可以直接发布,并且只能通过Pull Request从其他...
    UEUEO阅读 9,770评论 5 33
  • 又回到最初的起点,记忆中你青涩的脸——如同相册里的老照片,那些存放在抽屉里的旧手机记录了我们生活中的点点滴滴。 我...
    爱思助手阅读 758评论 0 0
  • 上海美博会第二天,人山人海的场馆太火爆了!实况转播中看到了很多红人,有模仿者汪涵,歌手宇桐飞,映客二姐,演员刘悦怡...
    皓月当空V简阅读 180评论 0 0