GitFlow入门与实践

来源:互联网 发布:kettle 调用java代码 编辑:程序博客网 时间:2024/05/16 04:40

Git Flow入门与实践

Git Flow工作流定义了一个围绕项目发布的严格分支模型,它为管理更大规模的项目提供了健壮的框架。


  • 流程图


  • 流程图

特点

首先,项目有两个长期分支:

- 主分支 master  (对外发布版本)- 开发分支 develop (最新开发版本)

其次,项目存在三种短期分支:

- 功能分支(feature branch)- 补丁分支(hotfix branch)- 预发分支(release branch)

一旦完成开发,它们就会被合并进developmaster,然后被删除。


长期分支 (master/develop)

相对使用仅有的一个master分支,Gitflow工作流使用2个分支来记录项目的历史。master分支上存放的是随时可供在生产环境中部署的代码,而develop分支是保存当前最新开发成果的分支。


功能分支 (feature/*)

  • 项目中所有新开发的功能都从develop分支出来,可以推送到远端以作备份和协作。当新功能完成时,再合并回develop分支。
  • 一般而言,feature分支代码可以保存在开发者自己的代码库中而不强制提交到主代码库里。


预发分支 ( release/* )

  • release分支是为发布新的产品版本而设计的。在这个分支上的代码允许做小的缺陷修正、准备发布版本所需的各项说明信息(版本号、发布时间、编译时间等等)。通过在release分支上进行这些工作可以让develop分支空闲出来以接受新的feature分支上的代码提交,进入新的软件开发迭代周期。(不能再将新的代码合并到release上)

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


  • 发布版本

补丁分支(hotfix/*)

  • 当生产环境中的软件遇到了异常情况或者发现了严重到必须立即修复的软件缺陷的时候,就需要从master分支上指定的TAG版本派生hotfix分支来组织代码的紧急修复工作。

  • 这样做的显而易见的好处是不会打断正在进行的develop分支的开发工作,能够让团队中负责新功能开发的人与负责代码紧急修复的人并行的开展工作


  • 修复紧急问题

Git Flow代码示例

a. 创建develop分支

git branch developgit push -u origin develop

b. 开始新Feature开发

git checkout -b feature/some-feature develop# Optionally, push branch to origin:git push -u origin some-feature    # 做一些改动    git statusgit add some-filegit commit   

c. 完成Feature

git pull origin developgit checkout developgit merge --no-ff feature/some-featuregit push origin developgit branch -d feature/some-feature# If you pushed branch to origin:git push origin --delete feature/some-feature   

d. 开始Relase

git checkout -b release/rev-0.1.0 develop# Optional: Bump version number, commit

# Prepare release, commit

e. 完成Release

git checkout mastergit merge --no-ff release/rev-0.1.0git pushgit checkout developgit merge --no-ff release/rev-0.1.0git pushgit branch -d release/rev-0.1.0# If you pushed branch to origin:git push origin --delete release/rev-0.1.0   git tag -a v0.1.0 master

git push –tags

f. 开始Hotfix

git checkout -b hotfix/fix-0.1.1 master    

g. 完成Hotfix

git checkout mastergit merge --no-ff hotfix/fix-0.1.1git pushgit checkout developgit merge --no-ff hotfix/fix-0.1.1git pushgit branch -d hotfix/fix-0.1.1git tag -a v0.1.1 mastergit push --tags

Git Flow工具

SourceTree


  • 功能界面

参考

  • Git 在团队中的最佳实践–如何正确使用Git Flow

  • Git 工作流程

  • Git工作流指南:Gitflow工作流
0 0
原创粉丝点击