git flow linux,Git Flow简介
Git Flow是什么?
Git Flow是一套基于git的工作流程,这个工作流程围绕着project的发布(release)定义了一个严格的如何建立分支的模型。
Git建分支是非常cheap的,我们可以任意建立分支,对任意分支再分支,分支开发完后再合并。
比较推荐、多见的做法是特性驱动(Feature Driven)的建立分支法(Feature Branch Workflow)。
简而言之就是每一个特性(feature)的开发并不直接在主干上开发,而是在分支上开发,分支开发完毕后再合并到主干上。
这样做的好处是
还处于半成品状态的feature不会影响到主干
各个开发人员之间做自己的分支,互不干扰
主干永远处于可编译、可运行的状态
GitFlow则在这个基础上更进一步,规定了如何建立、合并分支,如何发布,如何维护历史版本等工作流程。
master和develop分支
master分支只存放历史发布(release)版本的源代码。各个版本通过tag来标记。上图里的v0.1和v0.2就是tag。
develop分支则用来整合各个feature分支。开发中的版本的源代码存放在这里。
feature分支
每一个特性(feature)都必须在自己的分支里开发,feature分支派生自develop分支。
当feature开发完毕后,要合并回develop分支。feature分支永远不会和master分支打交道。
release分支
release分支不是一个放正式发布产品的分支,你可以将它理解为“待发布”分支。
我们用这个分支干所有和发布有关的事情,比如:
把这个分支打包给测试人员测试
在这个分支里修复bug
编写发布文档
所以在这个分支里面绝对不会添加新的特性。
当和发布相关的工作都完成后,release分支合并回develop和master分支。
单独搞一个release分支的好处是,当一个团队在做发布相关的工作时,另一个团队则可以接着开发下一版本的东西。
hotfix分支
一个项目发布后或多或少肯定会有一些bug存在,而bug的修复工作并不适合在develop上做,这是因为
develop分支上包含还未验证过的feature
用户未必需要develop上的feature
develop还不能马上发布,而客户急需这个bug的修复。
这时就需要新建hotfix分支,hotfix分支派生自master分支,仅仅用于修复bug,当bug修复完毕后,马上回归到master分支,然后发布一个新版本,比如v0.1.1。
同时hotfix也要合并回develop分支,这样develop分支就能享受到bug修复的好处了。
配套工具
Git Flow不仅仅是一种规范,还提供了一套方便的工具。大大简化了执行Git Flow的过程。
安装
OSX
$ brew install git-flow
Debian/Ubuntu Linux
$ apt-get install git-flow
Windows(cygwin)
$ wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash
Initialize
对一个git仓库配置一下git flow。主要是一些命名规范,比如feature分支的前缀,hotfix分支的前缀等。一般用默认值就行。
git flow init
Feature
Start a new feature
从develop开启一个新的分支
git flow feature start MYFEATURE
这个命令会从develop分出一个分支,然后切换到这个分支上面。
Finish up a feature
一个feature分支开发完毕后,要做以下事情:
把 MYFEATURE 合并到 develop
把这个分支干掉
切换回develop分支
git flow feature finish FEATURE_NAME
Publish a feature
如果你想让别人和你一起开发MYFEATURE分支,那就把这个分支push到服务器上
git flow feature publish MYFEATURE
Getting a published feature
获得一个别人publish到服务器上的feature分支
git flow feature pull origin MYFEATURE
Release
Start a release
创建一个release分支,派生自develop分支。
git flow release start RELEASE
Publish a release
git flow release publish RELEASE
Finish up a release
一个release分支结束后,需要做以下工作:
把release分支合并回master
给本次发布打tag
同时把release分支合并回develop
干掉release分支
git flow release finish RELEASE
最后不要忘记把tag push到服务器git push --tags
Hotfix
git flow hotfix start
开启一个hotfix分支
git flow hotfix start VERSION
Finish a hotfix
结束一个hotfix分支,和release一样,同时合并回develop和master
git flow hotfix finish VERSION
参考资料
git flow linux,Git Flow简介相关推荐
- windows git and linux git lib operater
windows git ssh生成git ssh key 配置 git clone use SSH网址 git config --global --list 查看是否已配置 git config - ...
- 使用 git 下载linux 源码
1)进入源码官网 https://www.kernel.org/ 页面如下: 2)主线的git 地址,当点mainline 后面的 "browse "时,如下: 点一下,企鹅右边的 ...
- git flow安装与使用 linux,git flow的使用
git大家都比较熟悉,下面来简单说说git flow.通过几个简单的使用,来比较一下git flow的方便之处.为了演示方便,我现在远程新建一个代码仓库,名字叫做GitflowDemo. 要使用git ...
- Git基础概念与Flow流程介绍
文章目录 Git相关 基本概念 常见客户端 TortoiseGit Sourcetree Intellij Idea 命令行 常用命令 存储区域 命令之 add & commit &p ...
- 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 Flow 的 Git 最佳实践(附加解决大家经常碰到的问题)
干货:基于 Git Flow 的 Git 最佳实践(附加解决大家经常碰到的问题) 参考文章: (1)干货:基于 Git Flow 的 Git 最佳实践(附加解决大家经常碰到的问题) (2)https: ...
- Linux:git、github、gitbash简介
Git介绍: Git是目前最先进的分布式版本控制系统,gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub. shell: 是linux ...
- Git合并和变基简介:它们是什么,以及如何使用它们
by Vali Shah 通过瓦利沙阿 Git合并和Git变基简介:它们做什么以及何时使用它们 (An Introduction to Git Merge and Git Rebase: What T ...
最新文章
- linux给普通用户sudo权限
- 使用OpenSSH远程管理Linux服务器
- 计算机转财经专业考试考什么,高三对口升学第三次模拟考试财经基础课计算机专业课...
- python -- join()
- (只需挨个复制粘贴命令即可部署)在Centos7下搭建文件服务器(VSFTPD)
- shell脚本统计httpd进程和子进程占用的CPU、内存大小,要求每隔5s统计一次
- Flex走出低谷的关键: 打破Flex固有的定义
- bat篇---windows bat启动exe结尾的可执行程序
- 数据透视表练习表格_将高级电子表格导出与PHP结合起来以创建数据透视表
- 图表有很多,你用对了么?
- 81、【backtrader基金策略】如果每周定投一次,在周几定投收益率更高?
- 解决力扣等国外网站打不开问题
- postman数据保存在哪里_Postman教程——使用数据文件
- 百度、华为、京东、B站最新面试题汇集,含泪整理面经
- mvp中的m作用_将M放入MVP
- 【论文阅读】Scene Text Image Super-Resolution in the Wild
- C语言 计算e的近似值
- 家装灯线走线图_求一套完整家庭装修电路图和走线图用来学习
- Elasticsearch搜索操作
- 三维空间中平面的法向量计算