gfl: github-flow 工作流

工作中常用的工作流
更新于: 2024-10-31 22:34:18
项目主页: https://github.com/aric-go/github-flow

安装

gcd git@github.com:aric-go/github-flow.git
yarn
yarn build
npm run bin:link

常用命令

$ gfl -h
Github Flow CLI

Usage:
  github-flow [flags]
  github-flow [command]

Available Commands:
  checkout    交互式的git分支切换(alias: co)
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  hotfix      开始一个hotfix分支
  init        初始化 Github Flow 配置
  pr          打开 GitHub 的 PR 页面
  publish     发布当前分支(alias: p)
  release     以最近 tag(eg:v1.0.0) 为基准,生成新的 release 版本
  start       开始一个新功能(alias: s)
  sweep       清理包含特定关键词的分支(alias: clean, rm)
  sync        同步远程仓库到本地仓库/更新所有远程仓库的引用
  tag         以最近 tag(eg:v1.0.0) 为基准,生成新的 tag 版本
  version     获取程序版本

Flags:
  -h, --help      help for github-flow
  -v, --version   show version

Use "github-flow [command] --help" for more information about a command.

cheatsheet

场景命令备注(原理)
开始新功能
# 开始一个 feature(默认从develop checkout)
gfl start v1030/mobile-login
gfl publish

# 开发完,合并回 develop
gfl pr

从当前开发分支 origin/develop 上启动新功能

命名风格: feature/{nickname}/feature-name

开始修复BUG
# 开始一个 fix(默认从develop checkout)
gfl start fix:v1030/mobile-auth-failed
gfl publish

# 开发完,合并回 develop
gfl pr

从当前开发分支 origin/develop 上开启bug修复

命名风格: fix/{nickname}/fix-some-bug

开始一个hotfix
# 开始一个 hotfix(默认从最近版本的 release 分支上 checkout)
gfl hotfix rm-staff-role
gfl publish

# 开发完,合并回 alpha 测试
gfl pr alpha
# 开发完,合并回 main
gfl pr main

# 这个时候可以将 main 合并回 develop --- sync

从最近的 releases/release-vx.y.z 上开启 hotfix 分支

为什么不能从alpha/main 这些分支上切?

因为这个hotfix 是需要合并为 alpha 用于发到 prod 上之前的测试

 

切记: 不要直接从 main 上切新分支,那样会让问题变得更复杂

开始一个  release(版本迭代)
# 正常版本发布,默认会停留在 releases/release-vx.x.z
gfl release
# 切到 releases/release-vx.x.z 最新的分支
gfl co 自己选择
# 打tag
gfl tag
 
开始一个  release(hotfix)
# 当有hotfix上线之后,需要发布一个 hotfix的 release
gfl release --hotfix
# 切到 releases/release-vx.x.z 最新的分支
gfl co 自己选择
# 打tag
gfl tag
 
定期同步 main → dev
gfl pr --sync
定期将 main 分支代码合并到 dev 分支