用途
本技能为 MEDcury HIS 系列仓库提供统一的 Git 工作流约定,覆盖分支命名、提交信息风格、MR 合并目标与发布标签,适用于创建分支、开始提交、发起合并请求或发布版本等场景。
使用前的上下文解析
在选分支或执行命令前,需先读取仓库说明、git status --short --branch、git remote -v、git branch -a 以及近期提交与合并历史,并在比较前获取相关远程引用。
源分支、基线、目标与命名按以下优先级确定:用户明确指令 → 仓库说明 → 已验证的远程/MR/PR 上下文 → 技能中的默认约定。仅凭默认分支不能证明预期的合并目标;若剩余歧义会改变结果,只问一个聚焦问题。
这些表格描述的是 MEDcury 约定,不适用于所有仓库;其他仓库应使用其已验证的约定。保留已有任务分支及无关的暂存/未暂存改动,若切换会干扰则使用独立 worktree。未提供工单时,按仓库的描述性分支约定命名,不要虚构工单号。
在执行变更前,说明选定的基线、工作分支和预期目标。仅在已有授权范围内继续;创建分支或提交本身不授权推送、发布版本或合并。
分支命名
- 功能分支:
feature/PROJ-XXX-short-description,基线develop - 缺陷修复:
bugfix/PROJ-XXX-short-description,基线main - 热修复:
hotfix/PROJ-XXX-short-description,基线main - 发布分支:
release/vX.Y.Z,基线develop
客户站点变体:分支名前缀 <site>-,并替换基线/目标分支,例如 <site>-feature/PROJ-XXX-short-description(基线 <site>-develop)、<site>-hotfix/PROJ-XXX-short-description(基线 <site>-main)、<site>-release/vX.Y.Z。
若工单已有分支(在 git branch -a 中检查),应继续在该分支上工作而非新建。部分既有分支带基线后缀(如 feature/MPD-XXX-desc-develop),继续时保留该后缀。
提交信息
优先匹配仓库现有风格:运行 git log --oneline -10,采用该仓库的主导风格。
- centrix(核心产品):
[PROJ-XXX] <type>: <description>,示例[MPD-1075] feat: show blood fields in order profile - 前端模块(dental-module、bloodbank_module):
[PROJ-XXX] - [Area] <Description>,示例[MPD-1014] - [Dental] Sort submitted items oldest-first - API 服务(medhis-*-services):
<type>(<scope>): <description>,示例feat(order): expose Blood Bank infusion duration
类型:feat fix refactor test docs chore style perf ci build revert。
MR 合并目标
feature/*→develop,合并后删除分支bugfix/*→main,使用 git-cherry-pick 技能回拣到develophotfix/*→main,回拣到developrelease/*→main,将main回合到develop(发布分支只允许缺陷修复)
并非所有仓库都有 develop;单流仓库(如 bloodbank_module、medhis-closed-api-services)将 feature/* 直接合入 main。发起请求前应通过仓库说明、远程分支和既有 MR/PR 历史验证适用目标;若有冲突且用户未选定目标,应询问而非静默更改。
客户站点:将 main/develop 替换为 <site>-main/<site>-develop。已验证为 GitLab 远程时使用 glab(参见 glab-mr 技能),GitHub 远程使用 GitHub 工作流。受保护的集成分支应通过 MR/PR 合并。
标签
使用仓库已验证的标签约定;MEDcury 约定为 Semver X.Y.Z,无前导零。需检查 CI 配置以确定推送标签会触发什么,验证发布提交与既有标签,并仅在明确的发布授权下发布。
快速命令
# 在验证远程与基线、并保护本地改动后:
git fetch <remote> <base>
git switch -c <working-branch> <remote>/<base>
# 用已验证的上游更新已有本地分支时:
git pull --ff-only
完成前核对
报告完成前验证当前分支与请求的差异;报告实际执行的检查,并区分本地改动、提交、已推送改动、打开的 MR/PR、待处理 CI 与已合并工作。仅在授权下执行删除分支与回拣等后续操作。
规则
- 受保护的集成分支(含适用的站点前缀分支)使用 MR/PR
- 每个工作分支限定于其工单/任务与目标,保留既有命名
- 功能分支生命周期为一个冲刺,合并后删除
- 发布分支只做缺陷修复,不加新功能