git flow 工作流
Git flow 工作流介绍
Git Flow 工作流是一个非常成熟的方案,也是非开源项目中最常用到的工作流。它定义了一个围绕项目发布的严格分支模型,通过为代码开发、发布和维护分配独立的分支来让项目的迭代流程更加顺畅,比较适合大型的项目或者迭代速度快的项目。
Git Flow 中定义了 5 种分支,分别是 master、develop、feature、release 和 hotfix。其中,master 和 develop 为常驻分支,其他为非常驻分支,不同的研发阶段会用到不同的分支。这 5 种分支的详细介绍见下表:
Git flow 完整工作流程
以开发go项目为例
1、创建示例项目 gitflow
# 创建项目目录
$ mkdir gitflow && cd gitflow
# 使用git管理
$ git init
# go mod 管理包
$ go mod init example.com/gitflow
# 生成README.md && main.go
$ cat README.md
this is gitflow show
$ cat main.go
package mainimport "fmt"func main() {fmt.Println("hello world")
}
$ ls
go.mod main.go README.md
2、创建常驻分支: develop
$ git checkout -b develop master
Switched to a new branch 'develop'
3、基于develop分支,创建一个新的功能分支:feature/print-name
$ git checkout -b feature/print-name develop
Switched to a new branch 'feature/print-name'
4、在feature/print-name分支上,main.go文件中新增一句fmt.Println("my name is ")
$ cat main.go
package mainimport "fmt"func main() {fmt.Println("hello world")fmt.Println("my name is ")
}
5、这时候假如我们发现了master分支一个bug(hello world需要改成大写),需紧急修复。此时我们还没完成"my name is jack ma!",但是必须去修复master的bug。这时候就要这样处理:
# 1. 由于功能分支未完成,不想提交,所以我们需要先缓存至堆栈区。
$ git stash
# 2. 基于master分支创建hotfix/fix-hello-world并修复问题。
$ git branch -b hotfix/fix-hello-world master
$ vim main.go
$ cat main.go
package mainimport "fmt"func main() {fmt.Println("HELLO WORLD")
}
# 3. 提交修复
$ git add .
$ git commit -m "fix hello world to HELLO WORLD"
# 4. 将修复合并至develop
$ git checkout develop
$ git merge --no-ff hotfix/fix-hello-world
# 4. 将修复合并至master
$ git checkout master
$ git merge --no-ff hotfix/fix-hello-world
# 5. 给master打上tag
$ git tag -a v0.0.2 -m "fix hello world to HELLO WORLD"
# 6. 发版
$ go build -v .
# 7. 修复完成后,删除hotfix/xxx分支
$ git branch -d hotfix/fix-hello-world
# 8. 切回原开发功能分支,此时develop更新过,所以要记得merge
$ git checkout feature/print-name
$ git merge --no-ff develop
# 9. 恢复堆栈区的工作状态
$ git stash pop
$ cat main.go
package mainimport "fmt"func main() {fmt.Println("HELLO WORLD")fmt.Println("my name is")
}
6、继续功能分支开发,完成完整的名字打印后提交。
$ vim main.go
$ cat main.go
package mainimport "fmt"func main() {fmt.Println("HELLO WORLD")fmt.Println("my name is jack ma!")
}
$ git add .
$ git commit -m "add print name!"
7、将feature/print-name push 至 代码托管平台,如github , 并发起pull request ,指定Reviewers进行代码评审。
$ git push origin feature/print-name
8、评审完成之后需要将分支合并至master
git checkout develop
git merge --no-ff feature/print-name
9、基于develop分支,创建release分支,测试代码。
$ git checkout -b release/1.0.0 develop
$ go build -v .
10、假如测试失败,需要我们修改"jack ma"为"Jack Ma",那么只需要在release分支上直接修复即可。
$ vim main.go
$ cat main.go
package mainimport "fmt"func main() {fmt.Println("HELLO WORLD")fmt.Println("my name is Jack Ma!")
}
$ git add .
$ git commit -m "fix jack ma"
$ go build -v .
11、修复后测试通过,那么将release代码合并至develop&master,然后给master 打上发版标签,直接发版。可选择性删除release分支或者留作记录。
$ git checkout develop
$ git merge --no-ff release/1.0.0
$ git checkout master
$ git merge --no-ff release/1.0.0
$ git tar -a v1.0.0 -m "fix jack ma && hello world"
$ go build -v .
$ git branch -d
git flow 工作流相关推荐
- git flow工作流
git flow工作流 背景: 在团队开发中,因为项目的众多,每个项目也都有不同的分支,往往会造成分支的混乱.比如我最近遇到了这样的情况,因为正在开发一个较为长期的项目,正改到一半,却派出来一个紧 ...
- git flow 概念
git flow 概念 Git作为一个代码管理系统,不可避免的会涉及到多人协作. 俗话说无规矩不成方圆.Git Flow 就是如何使用git 分支的一种规范,或者叫做推荐.简单来说就是通过规范化的流程 ...
- mac中使用Sourcetree的git flow
mac中使用Sourcetree的git flow 前言 1.git flow工作流 1.1 什么是git flow 1.2 git flow上的分支 1.2.1 长期分支 1.2.2 短期分支 1. ...
- Git的使用——Git 常用命令总结、Git的使用、Git 的分支、远程仓库的使用、IDEA 中使用Git、Git 工作流(Git Flow、Github Flow、GitLab Flow)
Git的使用--Git 常用命令总结.Git的使用.Git 的分支.远程仓库的使用.IDEA 中使用Git 一.Git 常用命令总结 为了方便后续查找命令,故先把总结放前面,教程放后面 1.git 基 ...
- Git学习笔记—Git Flow
在Java程序开发中的定制开发规范,想要把项目正规高效的跑起来.引入 Git 版本控制,Git-Flow 便成为了首选. 今天动力节点Java学院来带你了解一下. 一.为什么使用 git-flow 当 ...
- Git,Git Flow,GitLab使用指南
高效利用一次蹲坑时间,看看如何使用Git Flow进行高效开发,什么才是Git提交的正确姿势,怎样使用GitLab进行Code Review: 使用Git Flow高效开发: Git提交正确姿势,Co ...
- Git flow(使用工具自动git flow+解决合并冲突)
Git flow(使用工具自动git flow+解决合并冲突) 1. Git Flow常用分支 生产分支(master) Master分支只能从其他分支合并,不可直接修改,Master分支的Comm ...
- 《六》Git Flow
Git Flow 是一种 Git 工作流,通过为功能开发.发布准备和维护分别设立独立的分支,让发布迭代过程更流畅. 安装 Git Flow: 安装并初始化 Git Flow 后,Git 还是可以像之前 ...
- 增强版 Git Flow 模型
使用 Git 的最佳方式一直存在争议.那是因为 Git 本身只详细说明了基本的分支操作,这使得它的使用模式: 即分支模型--常常成为用户有意见的地方.虽然Git 分支模型能够帮助开发者减少其在更改代码 ...
最新文章
- 动图处理_面对单刀球的几种处理方法(动图演示)
- bzoj1491: [NOI2007]社交网络
- Windows之Wireshake之抓HTTP请求包(过滤目的IP)
- 汇编语言学习——第四章 第一个汇编程序
- CSS盒子的三种类型(border-box、content-box)
- 网段和子网的区别_石笼网袋和石笼网的区别
- 11 wifi6速率_什么是WiFi 6?究竟有多6?
- ELK入门级介绍--打造实时日志查询系统
- y空间兑换代码_如何让Python代码加速运行?
- sql优化的N种方法_持续更新
- 查询CI框架的版本号
- SQL 基础教程 练习题 Chapter 1
- 户籍管理系统php,户籍管理系统.rar - 源码下载|Windows编程|数据库编程|源代码 - 源码中国...
- vios aix_为AIX或VIOS选择多路径路径控制模块的指南
- 亲自动手制作来自MyBatis-Spring官网的chm格式帮助文件
- Python Numpy数组的降序排列 由大到小
- 今日头条推出“悟空问答” 做智能问答分发先驱者
- 圆满落幕!回顾 eBPF 技术的发展与挑战
- 2008大连市政府挂牌督办48项工作圆满实现全年目标
- Python实现整蛊、木马等黑客软件!