Databasus 仓库 Git 提交规范:FEATURE/FIX/REFACTOR 前缀、分支命名与自动化版本发布工作流
数据库灾备【免费下载链接】databasusPostgreSQL backup tool with Point-In-Time-Recovery and restore verification项目地址https://gitcode.com/gh_mirrors/po/databasus点击查看免费下载本篇指南完整讲解 Databasus 开源仓库的 Git 提交与分支命名约定FEATURE/FIX/REFACTOR三种 subject 前缀、禁止!破坏性标记的原因、body 要点式写法、feature/scope分支命名规则以及这些约定如何与仓库 CI 的自动化语义化版本SemVer发布流程联动。读完你不仅能写出符合仓库规范的提交还能理解为什么在 subject 中写一个!会让发布流程直接触发 major 版本升级。该规范定义在仓库的 git-commits skill面向 Agent 的编码技能文档中且被 CI 发布工作流 的determine-version任务直接消费是仓库工程化体系的一部分。一、为什么要为提交信息立规矩Databasus 是一个 PostgreSQL 备份工具附带 Point-In-Time-Recovery 与恢复验证能力仓库由 Go 后端、TypeScript 前端、Next.js 官网、验证 Agent 等多个子工程组成开发以 Agent 与人工协作进行。在这种仓库中提交信息不仅仅是变更日志还是发布流程的输入CI 会根据上一次 Git tag 之后所有提交的 subject 前缀自动判断下一个版本应该 bump minor、patch 还是 major。正因如此SKILL.md 对提交格式做了强约束并在文件头的 metadata 中写明其适用场景Write Databasus commit messages and branch names using the repositorys release-compatible format. Use when creating, editing or reviewing a commit message or branch name in this repository.——即创建、编辑或审查本仓库的提交信息与分支名时都必须使用这套与发布流程兼容的格式。二、subject 格式三种前缀别无他选提交信息的 subject首行必须使用以下三种格式之一FEATURE (scope): Summary FIX (scope): Summary REFACTOR (scope): Summary要点解析前缀大写FEATURE、FIX、REFACTOR必须保持这种精确写法。这不是随意风格选择——CI 的正则匹配是大小写敏感的见下文第四节。scope 括号与冒号(scope):中 scope 用于标示影响面例如(postgresql)、(backups)、(frontend)。冒号后跟一句话摘要Summary。禁止使用!subject 中任何位置都不能出现!字符。原文档明确警告Never use!anywhere in the subject. The release workflow treats it as a breaking change and triggers a major version bump.切勿在 subject 的任何位置使用!。发布工作流会将其视为破坏性变更并触发 major 版本升级。如果某个变更本质上是破坏性的正确的表达方式是把它写进 OpenSpec 文档见第四节而不是在提交信息里使用!标记。三、body 写作规范短 bullet list不要长叙事提交信息的正文body部分有明确的风格约束用简短的 bullet list 列出变更点每条一行不要写长篇叙事段落不要硬性在 80 字符处换行Do not hard-wrap lines at 80 characters这与其他许多仓库的习惯相反需要注意。原文档给出的 body 示例- validate PostgreSQL targets and quote conninfo values - verify workspace access before applying saved credentials - isolate local sockets and rotate internal database credentials - add regression coverage and OpenSpec documentation可以看到每条 body 都是动词短语 变更对象的精简句式覆盖了功能变更、安全加固、测试与文档补充等多个维度信息密度高且易于浏览。四、理由与实现细节放 OpenSpec且随实现一起提交规范明确要求Keep the reasons and implementation details in OpenSpec. When a change has related OpenSpec files, commit them together with the implementation.把理由和实现细节放在 OpenSpec 中。当变更有关联的 OpenSpec 文件时将它们与实现一起提交。也就是说提交信息只承担变更摘要的角色而为什么这么改、具体怎么实现这类信息沉淀在 OpenSpec 变更文档中。仓库的 openspec/changes 目录保存了这类变更记录例如已归档的2026-09-21-add-email-two-factor-auth变更就包含openspec/changes/archive/2026-09-21-add-email-two-factor-auth/ ├── proposal.md # 变更动机、依赖、影响面、范围外事项 ├── design.md # 技术设计 ├── tasks.md # 任务分解 └── specs/ └── two-factor-authentication/ └── spec.md # 最终规格当一次提交既包含实现代码又包含上述 OpenSpec 文件时应把两者放在同一个提交里保持变更 文档的原子性。五、分支命名与 subject 前缀一一对应分支名使用与提交前缀一致的词根feature/scope fix/scope refactor/scope例如实现某个新功能时开feature/backups-retention修复缺陷时开fix/s3-upload-retry。分支名的 scope 可以与后续提交信息中的 scope 保持一致便于在合并时快速对映。六、不要随意添加 co-author 归属规范明确除非用户直接要求否则不要在提交信息中添加 co-author 归属Do not include co-author attribution unless the user requests it directly.。在 Agent 协作开发中这条规则尤为关键避免每次提交自动带上无关的署名。七、为什么!会导致 major 版本升级发布工作流源码印证SKILL.md 中!触发 major 版本升级的警告并非空穴来风它对应着 CI 发布工作流 中determine-version任务on: push到main且提交信息不含[skip-release]时运行的版本判断逻辑。该任务使用git describe --tags --abbrev0取得最近 tag 作为当前版本无 tag 时回退为v0.0.0然后遍历两次 tag 之间的全部非 merge 提交的 subject核心判断逻辑如下HAS_FEATUREfalse HAS_FIXfalse HAS_BREAKINGfalse while IFS read -r commit; do if [[ $commit ~ ^FEATURE ]]; then HAS_FEATUREtrue elif [[ $commit ~ ^FIX ]]; then HAS_FIXtrue elif [[ $commit ~ ^REFACTOR ]]; then HAS_FIXtrue # refactor 按 patch 处理 fi if [[ $commit ~ BREAKING[[:space:]]CHANGE ]] || [[ $commit ~ ! ]]; then HAS_BREAKINGtrue fi done (printf %s\n $COMMITS) if [ $HAS_BREAKING true ]; then BUMP_TYPEmajor elif [ $HAS_FEATURE true ]; then BUMP_TYPEminor elif [ $HAS_FIX true ]; then BUMP_TYPEpatch else BUMP_TYPEnone fi从这段代码可以得出几条与 SKILL.md 直接对应的硬事实!是破坏性变更触发器正则[[ $commit ~ ! ]]会在 subject 中匹配到任何!字符时把HAS_BREAKING置为 true进而把BUMP_TYPE定为major。这就是 SKILL.md 禁止在 subject 中出现!的根本原因——一个手滑的!就会让下一次发布从 patch/minor 直接变成 major。FEATURE触发 minor 升级只要两次发布之间出现任何以FEATURE开头的提交版本就 bump minornpx semver -i minor。FIX与REFACTOR触发 patch 升级FIX和REFACTOR都会置HAS_FIXtrue版本 bump patch。没有任何匹配前缀时不下发BUMP_TYPEnoneshould_releasefalseCI 不会触发镜像发布。因此提交前缀不仅影响变更日志的可读性还直接决定 Databasus 镜像的版本号走势。遵循FEATURE (scope):/FIX (scope):/REFACTOR (scope):格式等于让发布版本号自动、准确地反映每次合并的内容。八、快速参考一次合规提交的完整流程结合以上规范一次符合 Databasus 仓库约定的提交可以这样完成开分支按变更类型选择feature/scope、fix/scope或refactor/scope写 subjectFEATURE (backups): add retention policy presets前缀大写、带 scope 括号、无!写 body2~5 条精简 bullet list不写长段落、不硬换行到 80 字符同步 OpenSpec如果仓库中已有对应变更记录如 openspec/changes 下的 proposal/design/tasks/spec把相关 OpenSpec 文件与实现代码放在同一提交中署名除非用户明确要求不添加 co-author 归属提交并推送CI 会在合并到main后依据 subject 前缀自动计算下一个版本号无需手工维护版本号。如需更深入了解配套工程化约定可继续阅读仓库根目录的 AGENTS.md 与 CI 发布工作流其他 Agent 编码技能如 OpenSpec 的 propose、update、archive 流程位于 .agents/skills 目录下可与本提交规范配合使用。赞分享数据库灾备【免费下载链接】databasusPostgreSQL backup tool with Point-In-Time-Recovery and restore verification项目地址https://gitcode.com/gh_mirrors/po/databasus点击查看免费下载相关推荐Hamburgers Git工作流feature分支与Pull Request规范Hamburgers Git工作流feature分支与Pull Request规范 引言 在开源项目协作中规范的Git工作流是保证代码质量和开发效率的关键。前端UI组件Elementor 的 Git 工作流规范详解分支命名、提交信息与 PR 指南Elementor 的 Git 工作流规范详解分支命名、提交信息与 PR 指南 本文基于 Elementor 仓库中的 Git 协作规则文档 .cursor/CMS前端后端低代码nuqs 仓库发布与 Git 工作流Conventional Commits、语义化版本与自动化发布实战nuqs 仓库发布与 Git 工作流Conventional Commits、语义化版本与自动化发布实战 本指南基于仓库内 .agents/docs/git前端状态管理上一篇手语翻译辅助工具hf_mirrors/ai-gitcode/seamless-m4t-v2-large与计算机视觉的结合探索下一篇Azure Functions Host部署指南从本地开发到云端生产的完整流程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

ng-zorro-antd DatePicker 禁用状态实战:nzDisabled、nzDisabledDate 与 nzDisabledTime 全解析

ng-zorro-antd DatePicker 禁用状态实战:nzDisabled、nzDisabledDate 与 nzDisabledTime 全解析

UI组件前端 【免费下载链接】ng-zorro-antd Angular UI Component Library based on Ant Design 项目地址: https://gitcode.com/gh_mirrors/ng/ng-zorro-antd 点击查看 免费下载 本文围绕 ng-zorro-antd 日期选择器(DatePicker)官方示例 禁…

2026/9/25 5:47:35 阅读更多 →
SSE流式传输实战:AI响应、Nginx配置与EventSource健壮封装

SSE流式传输实战:AI响应、Nginx配置与EventSource健壮封装

1. 为什么今天还必须亲手写一个 SSE 服务?不是 WebSocket 更香吗? SSE(Server-Sent Events)这个词最近在 AI 应用开发一线高频出现,但很多人其实只停留在“它能流式输出大模型回答”这个表层认知。我去年带团队重构三…

2026/9/25 5:47:35 阅读更多 →
使用 VoltAgent 构建 YouTube 转博客 Agent:MCP 工具、共享记忆与 Supervisor 编排实战

使用 VoltAgent 构建 YouTube 转博客 Agent:MCP 工具、共享记忆与 Supervisor 编排实战

人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆 【免费下载链接】voltagent AI Agent Engineering Platform built on an Open Source TypeScript AI Agent Framework 项目地址: https://gitcode.com/gh_mirrors/vo/voltagent 点击查看 免费下载 本…

2026/9/26 7:53:52 阅读更多 →

最新新闻

PowerShell指定目录启动的5种生产级方案

PowerShell指定目录启动的5种生产级方案

1. 项目概述:不是“怎么打开”,而是“如何精准控制PowerShell的启动上下文” “怎么打开指定目录下的PowerShell”——这句话看似简单,但背后藏着Windows命令行生态里一个被严重低估的核心痛点: 默认启动行为与实际工作场景的错配…

2026/9/26 7:54:03 阅读更多 →
SpringBoot+Vue前后端分离服装销售平台毕业设计项目全解析

SpringBoot+Vue前后端分离服装销售平台毕业设计项目全解析

直接说结论:这套“衣依”服装销售平台,是我见过最适合拿来毕业设计答辩的前后端分离项目之一。SpringBoot Vue的技术栈非常常规,但它的价值恰恰在于“常规”——评审老师不会因为框架太偏而刁难你,数据库设计、接口文档、前后端数…

2026/9/26 7:54:03 阅读更多 →
YOLO目标检测实战:NSFW内容审核模型训练与部署

YOLO目标检测实战:NSFW内容审核模型训练与部署

简介:这是一份基于YOLO算法构建的NSFW(不适宜工作场所内容)检测项目,适合深度学习、计算机视觉方向的毕业设计或课程设计参考。项目核心包含train.py与detect.py,分别负责模型训练与实时目标检测,同时提供c…

2026/9/26 7:54:03 阅读更多 →
智能物料柜制造厂家企业全景分析:聚澜智能生产厂家实力公司推荐

智能物料柜制造厂家企业全景分析:聚澜智能生产厂家实力公司推荐

智能物料柜制造厂家企业全景分析:郑州聚澜智能生产厂家实力公司推荐 郑州聚澜智能科技有限公司是国内软硬件一体化的RFID智能物料柜源头生产厂家,专注为各行业提供全流程智能物资管理解决方案,帮助企业解决传统物资管理痛点,大幅提…

2026/9/26 7:54:03 阅读更多 →
镇江化粪池清理优质机构筛选名录,口碑公司汇总实力参考

镇江化粪池清理优质机构筛选名录,口碑公司汇总实力参考

镇江作为长江沿岸城市,老小区密集,餐饮商铺众多,小区公共区域、沿街门店的化粪池清理、隔油池清理是不少业主、物业、商户头疼的刚需问题。很多人遇到需要清理化粪池的场景,找不对靠谱机构,要么上门慢耽误事&#xff0…

2026/9/26 7:54:03 阅读更多 →
测试转开发全攻略:从技能迁移到面试落地指南

测试转开发全攻略:从技能迁移到面试落地指南

从测试到开发,这是我这几年被问到最多的问题之一。我接触的测试工程师里,十个至少有六七个动过转开发的念头,原因不外乎薪资、天花板,还有那种“想亲手把东西做出来”的冲动。这篇文章不想劝谁转,也不想拦谁别转&#…

2026/9/26 7:53:03 阅读更多 →

日新闻

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、…

2026/9/26 0:00:25 阅读更多 →
学校官网模拟全流程实践:从页面布局到后端接口与部署

学校官网模拟全流程实践:从页面布局到后端接口与部署

如果你正在找一门 Web 大作业的题目,或者刚开始接触 Web 前端开发想做点能拿来展示的东西,“学校官网模拟”几乎是最稳的选择。题目看着简单,但要把导航、新闻列表、轮播 Banner、二级页面、后台数据都串起来,其实已经把前端布局、…

2026/9/26 0:00:25 阅读更多 →
超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

简介:这是一份面向游戏开发初学者与C进阶学习者的超级玛丽(超级马里奥)游戏源码,基于C面向对象编程实现,适合想通过经典项目理解游戏主循环、角色类设计、地图关卡加载与物理碰撞检测的读者参考。压缩包共49个文件&…

2026/9/26 0:00:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →