Git之GitFlow工作流

一、 GitFlow 介绍

1.1 什么是 GitFlow

GitFlow 是一种 Git 工作流,它是团队成员遵守的一种代码管理方案 。

1.2 GitFlow 常用分支说明

分支名称 分支说明
Production 生产分支,即 Master分支。只能从其他分支合并,不能直接修改
Release 发布分支,基于 Develop 分支创建,待发布完成后合并到 Develop 和 Production 分支去
Develop 主开发分支,包含所有要发布到下一个 Release 的代码,该分支主要合并其他分支内容
Feature 新功能分支,基于 Develop 分支创建,开发新功能,待开发完毕合并至 Develop 分支
Hotfix 修复分支,基于 Production 分支创建,待修复完成后合并到 Develop 和 Production 分支去,同时在 Master 上打一个tag

1.3 GitFlow 工作流程

二、GitFlow 实践

2.1 创建 develop 分支

# 创建 develop 分支
git branch develop
# 将 develop 分支推送到远端仓库
git push -u origin develop    

2.2 开始新的 Feature

# 通过develop新建feaeure分支
git checkout -b Feature分支名 develop
# 可选,将分支推送到远端仓库
git push -u origin Feature分支名     

2.3 编辑 Feature 分支

# 查看状态
git status
# 添加提交内容
git add XXXfile
# 提交
git commit    

2.4 完成 Feature 分支

# 拉取远端仓库 develop 分支合并到本地 develop 分支
git pull origin develop
# 切换到 develop 分支
git checkout develop
# 将 Feature 分支合并到 develop 分支
    # --no-ff:不使用 fast-forward 方式合并,保留分支的 commit 历史
    # --squash:使用 squash 方式合并,把多次分支 commit 历史压缩为一次
git merge --no-ff Feature分支名
# 将分支推送远端仓库
git push origin develop
# 删除 Feature分支
git branch -d Feature分支名

2.5 开始Relase

# 创建 Relase 分支并切换到 Relase 分支上
git checkout -b release-0.1.0 develop

2.6 完成Release

# 切换到 master 分支上
git checkout master
# 合并 release-0.1.0 分支
git merge --no-ff release-0.1.0
# 推送到远端仓库
git push
# 切换到 develop 分支上
git checkout develop
# 合并 release-0.1.0 分支
git merge --no-ff release-0.1.0
# 推送到远端仓库
git push
# 删除 release-0.1.0 分支
git branch -d release-0.1.0

2.7 开始Hotfix

# 创建 hotfix 分支并切换到 hotfix 分支上
git checkout -b hotfix-0.1.1 master

2.8 完成Hotfix

# 切换到 master 分支
git checkout master
# 合并 hotfix-0.1.1 分支
git merge --no-ff hotfix-0.1.1
# 推送到远端仓库
git push
# 切换到 develop 分支
git checkout develop
# 合并 hotfix-0.1.1 分支
git merge --no-ff hotfix-0.1.1
# 推送到远端仓库
git push
# 删除 release-0.1.0 分支
git branch -d hotfix-0.1.1
# 为主分支打上版本标签
git tag -a v0.1.1 master
# 将标签推送到远端仓库
git push --tags

三、 GitFlow 工具推荐

3.1 Git flow script(命令行)

初始化:

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

3.2 SourceTree (图形化)

原文地址:https://www.cnblogs.com/markLogZhu/p/11976296.html

时间: 2024-07-31 02:51:58

Git之GitFlow工作流的相关文章

Git基本命令和GitFlow工作流

本篇博客讲解了git的一些基本的团队协作命令,和GitFlow工作流指南 git 团队协作的一些命令 1.开分支 git branch 新分支名 例如,在master分支下,新开一个开发分支: git branch dev 2.切换到新分支 git checkout 分支名 例如,在master分支下,切换到新开的dev: git checkout dev 3.开分支和切换分支合并到一个命令 git checkout -b 新分支名 例如,新开一个开发分支,并立即切换到该分支: git chec

Git - Pull Request工作流

Pull Requests是Bitbucket上方便开发者之间协作的功能.提供了一个用户友好的Web界面,在集成提交的变更到正式项目前可以对变更进行讨论. 开发者向团队成员通知功能开发已经完成,Pull Requests是最简单的用法.开发者完成功能开发后,通过Bitbucket账号发起一个Pull Request.这样让涉及这个功能的所有人知道,要去做Code Review和合并到master分支. 但是,Pull Request远不止一个简单的通知,而是为讨论提交的功能的一个专门论坛.如果变

好代码是管出来的——Git的分支工作流与Pull Request

上一篇文章介绍了常用的版本控制工具以及git的基本用法,从基本用法来看git与其它的版本控制工具好像区别不大,都是对代码新增.提交进行管理,可以查看提交历史.代码差异等功能.但实际上git有一个重量级的功能“分支”,git的分支与其它工具的分支不同,git分支的操作完全在本地进行,所以可以快速的创建和切换. 版本控制工具除了对代码进行管理外,实际上它还影响了整个软件编码的工作流程,git因为其分支特性使得开发流程发生了变化,本文将从以下几点来介绍分支和git的工作流程: 版本控制管理分支简介 G

gitflow工作流简介

gitflow工作流是一种依赖于Git版本管理工具,按特定规范对项目开发.测试.上线流程进行管理的工作方式.它是一种为实现规范化管理的约定,它明确了各个分支的意义,使整个团队的分工协作更加和谐明晰. 一.gitflow工作流约定使用的分支简介 [master]项目的核心分支,也是最终对外发布的分支,唯一且稳定.仅提供可读,不可在该分支上直接修改代码. [develop]项目的开发主干分支,唯一.仅提供可读,不可在该分支上直接修改代码.新功能的开发需从该分支拉取新的分支展开.develop分支应该

版本管理工具Git三种工作流

Git是分布式版本管理控制的工具.学习Git一般都是先去学习Git的命令. 但是学习完Git的基本命令之后还是不知道怎样使用Git.首先,我们要清楚的 一点是Git的使用方法其实有很多种,也就是说Git有不同的工作流.本文介绍 一下Git常用的三种工作流. 1. 集中式工作流 集中式工作流主要是用于团队人数较少的情况,集中式工作流只在一 个分支上进行开发.每次修改都在同一个分支上提交.像写文档这种工作方式 就可以使用集中式工作流. 2. Gitflow工作流 在软件开发设计中,我们要考虑功能开发

GitFlow 工作流

1.概述 GitFlow 工作流定义了一个围绕项目发布的严格分支模型.虽然比功能分支工作流复杂几分,但提供了用于一个健壮的用于管理大型项目的框架. GitFlow 工作流没有用超出功能分支工作流的概念和命令,而是为不同的分支分配一个很明确的角色,并定义分支之间如何和什么时候进行交互.除了使用功能分支,在做准备.维护和记录发布也使用各自的分支.当然你可以用上功能分支工作流所有的好处:Pull Requests.隔离实验性开发和更高效的协作. 2.工作方式 GitFlow 工作流仍然用中央仓库作为所

Git版本控制与工作流

基本概念 Git是什么? Git是分布式版本控制系统,与SVN类似的集中化版本控制系统相比,集中化版本控制系统虽然能够令多个团队成员一起协作开发,但有时如果中央服务器宕机的话,谁也无法在宕机期间提交更新和协同开发.甚至有时,中央服务器磁盘故障,恰巧又没有做备份或备份没及时,那就可能有丢失数据的风险. 但Git是分布式的版本控制系统,客户端不只是提取最新版本的快照,而且将整个代码仓库镜像复制下来.如果任何协同工作用的服务器发生故障了,也可以用任何一个代码仓库来恢复.而且在协作服务器宕机期间,你也可

git学习(4)---工作流

一.目的 前三章介绍了git工具本身的操作,主要包括本地仓库操作和远程库操作两部分内容.接下来,我们将介绍如何使用git进行项目开发,也叫做git工作流. git工作流分为三种模式:共享远程库模式.独立远程库之github模式.独立远程库之linux模式. 本文涉及到的所有操作都是在Ubuntu14.04环境中进行的,git版本是1.9.1. 二.三种角色 通常一个项目中需要以下几种角色:项目维护者.模块维护者.普通开发者. 项目维护者的主要工作内容是分支合并以及版本发布. 模块维护者的主要工作

Git与GitFlow工具介绍

关于版本控制 什么是"版本控制"?我为什么要关心它呢? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 不单单可以对保存着软件源代码的文件作版本控制,你可以对任何类型的文件进行版本控制. 有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等. 使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文