从一个前端项目实践 Git flow 的流程与参考

Git flow 出自 A successful Git branching model,这里使用了一个前端项目配合本文稿实施了 git flow 并记录流程作出示例和参考,对 hotfix 与持续部署略有提及,本意是用作公司内部的技术安利。
所用源码及文档本身见于 github jusfr/HelloGitflow

前言

Gitflow 是一种 git 分支管理工具——说是思想也不为过,它使用既定策略区分和管理开发、测试、生产环境的代码版本,对测试与持续集成友好,与敏捷、迭代的思路一致。

1 准备工作

1.1 创建空白目录

mkdir HelloGitflow
cd HelloGitflow

1.2 开始当前目录工作,示例创建和保存一个 index.html

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <div></div>
</body>
</html>
git add index.html
git commit -m "init commit"

2 Git flow init

git flow init

这里使用了默认配置,一路 next

3 一个完整的开发周期

3.1 任务拆解,示例添加了分支 about 和 navigation

git flow feature start about
git flow feature start navigation

任务拆解相当于 story 认领,实际开发中的步骤更加繁冗。

3.2.1 about 分支创建了一个 about.html

git checkout feature/about
# more work to do
git add about.html
git commit -m "add about.html"

3.2.2 navigation 分支创建了一个 nav.html

git checkout feature/navigation
# more work to do
git add nav.html
git commit -m "add nav.html"

3.3 开始合并分支

3.3.1 合并 about

git flow feature finish about

3.3.2 合并 navigation,存在 merge 过程

git flow feature finish navigation

3.4 版本发布

3.4.1 当 feature 积累数量达到可以进行版本发布时,开始进行 release 发布

git flow release start v0.1

3.4.2 部分内容需要修改,在这里为各页面添加了 title

git add index.html about.html nav.html
git commit -m "add title for each page"

3.4.3 结束当前 release 分支

# git push
git flow release finish v0.1

4 连续的开发周期

我们开始在远程分支上工作,可以在结束分支前先将其 push 到远程分支上避免未在本地保留的情况

git remote add github https://github.com/jusfr/HelloGitflow.git
git push github --all

虽然开出来很多分支,但是可以观察到 master 和合并了两次,且分别被标记为 v0.1 和 v0.2

不考虑测试等情况,标记 v0.1 和 v0.2 的 master 版本或者 release/v0.1 和 release/v0.2 都是可以部署的版本。

5 线上的 bug 修复

现在已经在 v0.2 基础上进行 account 和 react 的分支开发,但是发现线上的 v0.2 版本需要立即修复的问题,分支状态

开启 hotfix/v0.2.1 来修复这个问题

bash git flow hotfix start v0.2.1

在 hotfix/v0.2.1 的视角来看,它是从最近的 mater 分支checkout 下来的,所以对正在进行的 account 和 react 无影响

以全局视角来看,hotfix/v0.2.1 与 account 和 react 确实没有交集

现在问题修复,合并 hotfix/v0.2.1

bash git flow hotfix finish ‘v0.2.1‘

当然仍然可以先 push 到远程分支,可以看到进行了若干步操作

  1. 合并 hotfix/v0.2.1 到 master 分支,master 分支被打上 v0.2.1 的 tag
  2. 合并 master 到 develop 分支。

在第2步中,如果 develop 有过变更,比如有过 feature 合并,那么可能存在冲突需要解决

在此示例中, master 分别被打上了 v0.1, v0.2, v0.2.1 标记,这对基于 master 的持续部署非常友好:可以快速在这些版本中部署与回滚,而不用关心存在多少变更与分支等等。

时间: 2024-10-16 00:28:18

从一个前端项目实践 Git flow 的流程与参考的相关文章

Git flow 的流程

Git flow 的流程与参考 Git flow 出自 A successful Git branching model,这里使用了一个前端项目配合本文稿实施了 git flow 并记录流程作出示例和参考,对 hotfix 与持续部署略有提及,本意是用作公司内部的技术安利.所用源码及文档本身见于 github jusfr/HelloGitflow 前言 Gitflow 是一种 git 分支管理工具——说是思想也不为过,它使用既定策略区分和管理开发.测试.生产环境的代码版本,对测试与持续集成友好,

vsCode怎么为一个前端项目配置ts的运行环境

vsCode为一个前端项目配置ts的运行环境,ts文件保存的时候自动编译成js文件: 假设此前端项目名称为Web:文件结构如图 1. 在根目录中新建一个".vscode"文件夹,里面建一个"tasks.json"文件,内容为: { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "versio

[front]有效开展一个前端项目

今天的前端如果没有用到 npm,效率是比较低的:所以要从使用的工具来讲. 1. 一切都依赖于 nodejs: 下载一个 linux 的源码包就可以开始安装了. $ wget https://nodejs.org/dist/v4.4.7/node-v4.4.7.tar.gz $ ./configure --prefix=/usr/local/nodejs $ make && sudo make install 装好后,npm 已经在/usr/local/nodejs/bin/npm. 如果之

webpack(零工程构建一个前端项目)

工作流程记录: 1.初始化项目:npm init -y 2.安装webpack,vue,vue-loader npm install webpack vue vue-loader 3.按装之后根据警告提示,安装css-loader,vue-template-conpiler依赖包. npm install css-loader vue-template-compiler 项目初始化基本完成. 一直遇到提示 install webpack-cli -D,即使安装了也没有用,索性直接删除了,之后可以

团队Git Flow指南

常规: 团队项目以git flow模型管理分支,使用bitbucket托管,以pull request方式做code review. 个人开发流程: 在bitbucket页面上操作fork project repo git clone [email protected]:<pr­oje­ct>cd <­pro­jec­t>git flow init -dgit pull origin developgit branch --set-­ups­tream develop origin

windows 安装 git flow

1.https://raw.githubusercontent.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh 把这个复制出来写到文件里 2.执行 ./gitflow.sh install stable 即可 3.进入项目目录git flow init 初始化环境 $ git flow init # 全部回车 Which branch should be used for bringing forth pr

前端项目中gulp的使用

在公司项目开发中,有一个前端项目,我们使用gulp来生成目标文件(css,js,html文件) 进入到这个项目目录中  C:\My Project\FrontEnd\TestBuilder 然后依次运行如下命令: npm install npm run build gulp  default (假如 gulpfile.js 中gulp的任务名字是 default) 原文地址:https://www.cnblogs.com/wphl-27/p/9626763.html

干货:基于 Git Flow 的 Git 最佳实践(附加解决大家经常碰到的问题)

突然想写这一篇Git的使用心得,主要有几个原因,其一是自己使用Git也有快3年时间了,其间自己经历过一些坑,也有迷茫的时候,在呆过的大大小小的团队中,其实每个人也都并不是Git专家,很多对于流程以及Git本身的理解,还处于一个比较混乱的地带.自己写这篇文章希望能抛砖引玉,在总结自己得失的同时,能给大家带来更深层次的思考. 直接进入主题,经过这么多年的实践,多次想避开Git flow寻找更简单的流程,每次自认为找到了捷径,但事实上都发现有这样或者那样更多的问题,所以,我认为最佳的Git实践,仍然得

Git 在团队中的最佳实践--如何正确使用Git Flow[转]

原文地址:http://www.cnblogs.com/cnblogsfans/p/5075073.html Git的优点 Git的优点很多,但是这里只列出我认为非常突出的几点. 由于是分布式,所有本地库包含了远程库的所有内容. 优秀的分支模型,打分支以及合并分支,机器方便. 快速,在这个时间就是金钱的时代,Git由于代码都在本地,打分支和合并分支机器快速,使用个SVN的能深刻体会到这种优势. 感兴趣的,可以去看一下Git本身的设计,内在的架构体现了很多的优势,不愧是出资天才程序员Linus (