abc-git-flow

Installation
SKILL.md

ABC GIT FLOW 分支管理

ABC 定制化的 Git 工作流,基于 git-flow 扩展,支持灰度发布流程。

安装 abc-git-flow

macOS

sudo curl https://cis-static-common.oss-cn-shanghai.aliyuncs.com/assets/abc-git-flow/git-abc-flow-install.sh | sh

如果报错 Bad CPU type,需要执行:

/usr/sbin/softwareupdate --install-rosetta --agree-to-license

Windows

curl -# -O https://static-common-cdn.abcyun.cn/assets/abc-git-flow/install.bat && call install.bat

Linux

curl https://static-common-cdn.abcyun.cn/assets/abc-git-flow/install-linux.sh | sh

初始化

首次使用需要在工程目录下执行:

git abc init
git abc tag config <前缀>  # 配置 tag 前缀,如 pc、charge

分支结构

长期分支(禁止直接开发)

分支 用途 对应环境
master 稳定的生产代码 正式环境
gray 灰度环境代码 灰度环境
rc 预发布测试 预发布环境
develop 开发基础分支 测试环境
experience 体验分支,不保证稳定性 体验环境

临时分支

分支前缀 来源 用途
feature/* develop 新功能开发
hotfix/* master 正式环境紧急修复
hotfix-g/* gray 灰度环境紧急修复

分支命名规范:参见 分支命名规则

典型工作流程

新需求开发

流程:

# 1. 创建 feature 分支
git abc feature start <name>

# 2. 开发完成后,rebase develop(单人开发时)
git fetch origin develop
git rebase origin/develop

# 3. 创建提测 tag (f-tag)
git abc tag create   # 选择 "需求提测(f)"

# 4. 测试通过后,合回 develop
git abc feature finish <name>

注意事项:

  • 多人协作同一 feature 时禁用 rebase,改用 merge
  • finish 后记得 push develop 分支

正式环境 Bug 修复

流程:

# 1. 从 master 创建 hotfix 分支
git abc hotfix start <name>

# 2. 修复后创建测试 tag
git abc tag create   # 选择 "测试环境(t)"

# 3. 测试通过后,合入所有分支
git abc hotfix finish <name>

# 4. 推送所有受影响的分支
git push origin master gray rc develop

# 5. 删除 hotfix 分支
git branch -d hotfix/<name>
git push origin --delete hotfix/<name>

关键提醒: hotfix finish 会自动合入 master、gray、rc、develop 四个分支,务必全部 push!

灰度环境 Bug 修复

流程:

# 1. 从 gray 创建 hotfix-g 分支
git abc hotfix-g start <name>

# 2. 修复后创建测试 tag
git abc tag create   # 选择 "测试环境(t)"

# 3. 测试通过后,合入相关分支
git abc hotfix-g finish <name>

# 4. 推送所有受影响的分支
git push origin gray rc develop

# 5. 删除 hotfix-g 分支
git branch -d hotfix-g/<name>
git push origin --delete hotfix-g/<name>

关键提醒: hotfix-g finish 会合入 gray、rc、develop 三个分支(不包含 master)

发布流程

集成测试 (t-tag):

# 在 develop 分支打 t-tag
git checkout develop
git abc tag create   # 选择 "测试环境(t)"

发预发布 (p-tag):

# 将 develop 合入 rc
git abc rc start

# 打预发布 tag
git abc tag create   # 选择 "预发布环境(p)"
git push origin rc

发灰度 (g-tag):

# 将 rc 合入 gray
git abc rc finish
git push origin gray

# 打灰度 tag
git checkout gray
git abc tag create   # 选择 "灰度环境(g)"

发全量 (v-tag):

# 将 gray 合入 master
git abc gray publish
git push origin master

# 打全量 tag
git checkout master
git abc tag create   # 选择 "正式环境(v)"

Tag 命名规范

通过 git abc tag create 交互式创建的 tag 自动符合规范。

格式: 前缀年份.周数.构建号

前缀 用途 示例
xxx-f feature 功能提测 pc-f2021.09.01
xxx-t 集成测试 pc-t2021.09.02
xxx-p 预发布 pc-p2021.09.01
xxx-g 灰度发布 pc-g2021.09.01
xxx-v 正式发布 pc-v2021.09.01

详细说明:参见 Tag 创建详细指南,包含 tag 类型、分支约束、上车/提测信息等完整说明。

Rebase 使用原则

推荐使用 rebase 的场景:

  • 独立开发的 feature 分支,合入 develop 最新代码
  • 独立开发的 hotfix 分支,合入 master 最新代码
  • 本地分支同步远程: git pull --rebase

禁止使用 rebase 的场景:

  • 多人协作的分支(会导致历史混乱)

Merge Request 管理

# 创建 MR(交互式选择目标分支和评审者)
git abc mr create

# 配置云效 Token
git abc mr config

非交互式脚本

git abc 部分命令(如 tag create、mr create)需要交互式输入,在自动化场景(CI/CD、脚本批处理、IDE 集成等)中不方便使用。提供了 Python 脚本作为非交互式替代方案。

安装依赖:

pip install requests

Tag 创建脚本 (scripts/tag_create.py)

# 创建正式环境 tag
scripts/tag_create.py v --deps "abc-auth" --operation "无"

# 创建需求提测 tag
scripts/tag_create.py f \
  --deps "无" \
  --operation "无" \
  --remark "feat: 实现新功能" \
  --tapd-id "1122044681001112866"

# 创建灰度环境 tag
scripts/tag_create.py g --deps "abc-auth" --operation "无"

# 仅创建 tag,跳过上车/提测
scripts/tag_create.py v --skipdeploy

参数说明:

参数 说明 必填
tag_type Tag 类型 (f/t/v/g/p)
--deps 依赖的服务 上车/提测时必填
--operation 需要的操作 上车/提测时必填
--remark 备注/说明 提测时必填
--tapd-id 关联的 TAPD ID 否 (f tag 可选)
-b, --business 业务线 (默认 abc-his)
--prefix Tag 前缀 (默认从 git config 读取)
--hotfix Hotfix 模式
--skipdeploy 跳过上车/提测,仅创建 tag

MR 创建脚本 (scripts/mr_create.py)

# 创建 MR
scripts/mr_create.py \
  -t develop \
  -T "feat: 新功能开发" \
  -r 张三 李四

# 指定描述
scripts/mr_create.py \
  -t develop \
  -T "fix: 修复bug" \
  -r 张三 \
  -d "修复了xxx问题"

# 跳过企业微信通知
scripts/mr_create.py \
  -t develop \
  -T "feat: xxx" \
  -r 张三 \
  --skip-notify

参数说明:

参数 说明 必填
-t, --target 目标分支
-T, --title MR 标题
-r, --reviewers 评审者姓名(多个用空格分隔)
-d, --description MR 描述
--skip-notify 跳过企业微信通知

前置条件:MR 创建需要先配置云效 Token,运行 git abc mr config 或手动创建 ~/.abc-fed-config/mr.json

命令速查

# 初始化仓库
git abc init

# Feature 管理
git abc feature start <name>     # 从 develop 创建
git abc feature finish <name>    # 合回 develop

# Hotfix 管理(正式环境)
git abc hotfix start <name>      # 从 master 创建
git abc hotfix finish <name>     # 合入 master/gray/rc/develop

# Hotfix-g 管理(灰度环境)
git abc hotfix-g start <name>    # 从 gray 创建
git abc hotfix-g finish <name>   # 合入 gray/rc/develop

# RC 管理
git abc rc start                 # develop → rc
git abc rc finish                # rc → gray

# Gray 管理
git abc gray publish             # gray → master

# Tag 管理
git abc tag create               # 交互式创建 tag
git abc tag create <类型>        # 直接指定 tag 类型 (v/g/p/f/t)
git abc tag show [类型]          # 查看最近 tag
git abc tag config [前缀]        # 配置 tag 前缀

# MR 管理
git abc mr create                # 创建 Merge Request
git abc mr config                # 配置云效 Token

# 其他
git abc -v                       # 查看版本
git abc -h                       # 查看帮助
git abc update                   # 更新工具

命令支持情况对照

操作 交互式命令 非交互式脚本 推荐方式
Feature 操作 git abc feature start/finish - 交互式
Hotfix 操作 git abc hotfix start/finish - 交互式
RC 操作 git abc rc start/finish - 交互式
Tag 配置 git abc tag config <前缀> - 交互式
Tag 创建 git abc tag create [类型] tag_create.py [类型] --deps xxx 自动化场景用非交互式
MR 创建 git abc mr create mr_create.py -t xxx -T xxx -r xxx 自动化场景用非交互式

提示:在非交互式终端环境(CI/CD、脚本批处理、IDE 集成等)中,优先使用非交互式脚本创建 Tag 和 MR,避免终端阻塞。

操作指导原则

  1. 执行前确认: 执行 git abc 命令前,先用 git status 确认工作区干净
  2. 及时推送: finish 操作后,立即推送所有受影响的分支
  3. 清理分支: 合并完成后删除已废弃的临时分支
  4. 冲突处理: 遇到合并冲突时,仔细解决后再继续操作
  5. 观察提示: 注意命令执行过程中的提示信息,按提示操作
Related skills

More from abcfed/claude-marketplace

Installs
16
GitHub Stars
20
First Seen
Feb 24, 2026