我爱编程iOS相关技术实现

谈谈我眼里的 git flow

2018-05-27  本文已影响159人  郑经铧Monkey

一、前言

最近接手的一个内部孵化项目进入了紧张的迭代开发期,一周至少需要完成 5 个功能以及 N 个历史 Bug 修复工作。之前项目只有一个人负责,因此所有的开发都在 git 的 develop 分支里开发,开发完毕后合并到 master 上。

但是现在为了满足敏捷开发、快速迭代的需求,后端项目组增加了 2 名成员,结果发现只在 develop 分支上开发的问题弊端过多,问题出现在:

  1. 大家的代码经常发生冲突,基本上一天有 5% 的时间要解决冲突问题
  2. 生产环境上遇到紧急的问题无法正常修复,每次修复都直接在服务器上修改,然后再同步回本地,结果造成大量无效时间。

为了解决此问题,我决定在小组内启用 git flow 开发模式,本文也当做一个简单的组内学习教程,也希望对其他人有用。

二、什么是 Git Flow?

关于什么是 Git Flow 估计在百度上能搜出一大堆,但用我的话来总结就是:

git flow 是利用 git 分支让团队协作能无干扰顺利进行的工作流程

它的主要特点有以下几个方面:

  1. 让处于半成品状态的功能(feature)不会影响到主分支(master)
  2. 各个开发人员之间做自己的分支,互不干扰
  3. 主分支(master)永远处于可编译、可运行的状态

以下是 git flow 流程图(是的,这个图肯定也烂大街了,将就看看)


git flow

主要分支介绍

三、工具安装

工欲善其事必先利其器,我们可以通过以下命令在操作系统里安装好 git-flow 扩展集,简化我们的操作流程:

Mac 系统运行以下命令安装:

$ brew install git-flow-avh

Linux 系统运行以下命令安装:

$ apt-get install git-flow

Windows 系统运行以下命令安装

$ wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash

更具体的安装步骤可以访问此篇文章了解:git-flow 备忘清单

四、场景使用介绍(跟着我练 10 遍)

下面我将模拟出真实的使用场景,每个场景都需要大家敲入正确的代码:

现在公司的官网系统正在 master 分支上平稳运行着,当前计划在 10 天后上线一个新版本,增加投稿功能。

目前公司安排甲、乙、丙三人负责此项目,大家领取的功能如下:

具体情况如下:

题目就是:
根据以上每一天的场景,列出当天任务责任人所需要输入的 git flow 命令。如:

## 项目第 1 天,三个人需要运行以下命令创建自己对应的分支
甲:git flow feature start contribute-frontend
乙:git flow feature start contribute-server
丙:git flow feature start contribute-admin

。。。以下是其他的内容

以上就是常见的使用场景了,在这篇文章里不会给出答案,希望大家都能按照自己理解的方式做做此练习。做完一遍后可以反复多做几遍,让自己的身体形成肌肉记忆,提高工作效率 :)

参考

上一篇下一篇

猜你喜欢

热点阅读