关于 bagisto-git-workflow
bagisto-git-workflow 是依据 Bagisto 仓库历史整理的 Git 规范技能,面向项目贡献者。它说明分支、提交、变更日志和拉取请求的惯例,也明确验证要求及操作边界。
主要功能
- 01遵循仓库特定的分支惯例
- 02按 Conventional Commits 编写提交主题
- 03撰写面向升级者的简明变更日志
- 04说明拉取请求内容和验证情况
- 05避免未经许可的提交和依赖变更
适用场景
- 01为目标发布分支准备工作分支
- 02编写提交信息和变更日志条目
- 03准备拉取请求说明和验证记录
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bagisto/ agent-skills --skill bagisto-git-workflow安装后在 Claude Code 中输入/bagisto-git-workflow确认已加载。
详细介绍
Git 工作流
本仓库实际遵循的约定,依据其历史记录整理,而非通用 Git 指南。
分支
<author>/<topic> 或 <author>/<type>/<topic>,全部小写并以连字符连接:
devansh-webkul/themes-improvements
kartikeywebkul9260/v2.4_file_attribute_required_validation
Vansh-Sharmaa/fix/duplicate-product-customizable-options
从目标发布分支创建分支——开发 2.4 版本时用 2.4,开发下一个大版本时用
master——并向同一分支发起拉取请求。切勿直接向 2.4 或 master 提交。
提交
遵循 Conventional Commits,主题小写,使用祈使语气或描述性表述。最近 200 次提交中:fix: 66 次、feat: 21 次、chore: 9 次、chore(deps): 5 次、
test: 3 次、refactor(shop): 1 次、docs: 1 次。
fix: grouped themes into two parts my theme and buy themes
feat: playwight testcases updated and draft issue fixed
test: playwright testcases added
chore: changelog and version updated
作用域可选,且很少使用——refactor(shop):、chore(deps):。
只有在主题无法说明原因时才写正文——最近 100 次非合并提交中,只有 12 次带有正文。正文解释为什么,而不是 diff 中已经显示的内容——如果你想把某些内容写成代码注释,那么正文正是合适的位置,因为这个代码库不会在方法体内添加注释。
切勿添加 AI 或工具署名。 不要为助手添加 Co-Authored-By,不要添加“Generated with”,也不要添加机器人表情符号。该仓库的历史记录中没有这些内容,也不应出现。
CHANGELOG
CHANGELOG.md 以 ## Unreleased 开头,之后每个版本各有一个部分:
## Unreleased
- Entry.
## **v2.4.9 (5th of August 2026)** - *Release*
- Entry.
条目以 - 开头,彼此之间空一行,且必须是面向升级用户撰写的说明:用完整句子说明用户可见的效果。不要写成提交主题或 diff 摘要。
修复了大型搜索的问题:当另一个标签页有结果时,搜索会让你停留在空标签页,看起来像是没有找到任何内容。现在会打开第一个有匹配结果的标签页。
每个条目最多两行——清晰、简明。 这是硬性上限,以下两种格式都适用:
| 格式 | 适用情况 |
|---|---|
- <prose> | 新功能或没有已报告问题的变更 |
- #11432 [fixed] - <prose> | 修复已报告的问题 |
说明用户可见的效果,然后就此为止。原因、内部机制和历史不属于 CHANGELOG 的内容——这些应写在提交消息或拉取请求中,任何调查此变更的人都会去那里查看。如果一个条目无法控制在两行内,就说明其中包含了应移至上述位置的解释内容。
- Fixed the admin product listing repeating a product once for every channel it is carried by.
- Fixed the admin product listing repeating a product once for every channel it is carried by, so a
store with three channels listed it three times. The PostgreSQL work had widened the grouping from
the product to every selected column, which made the channel part of the group; it now picks one
row per product. ← the cause belongs in the commit message, not here
将条目添加到 ## Unreleased 下。不要擅自添加版本标题或日期——版本会单独发布。
拉取请求
合并时使用 GitHub 的默认主题,这也是历史记录中显示的内容:
Merge pull request #11426 from devansh-webkul/themes-improvements
描述中应说明变更内容及原因,并指出审阅者无法从 diff 中看出的事项——例如配置默认值、迁移,或未纳入本次变更的后续工作。发起拉取请求前先运行验证门禁,并在描述中说明哪些检查已运行、哪些已跳过。
规则
- 除非收到明确要求,否则不要提交、推送或发起 PR。 将工作保留在工作树中,并说明已准备好的内容。
- 切勿对共享分支执行
--force,也不要改写已发布的历史记录。 - 切勿提交
.env、凭据、vendor/、node_modules/,或public/themes/*/build/下的构建产物。 - 每个提交只包含一项逻辑变更。 修复和无关的重构应分别提交,这样可以单独撤销其中任一项。
- 未经批准,不要添加或移除 Composer 或 npm 依赖项,也不要提交非预期的锁文件变更。
- 先运行门禁检查。 未通过 Pint 或测试的提交,也无法通过 CI。
必需的子技能: 在宣布任何变更完成前,使用 bagisto-change-verification。