git-commit · diff
git:20260317.56efd6f to git:20260328.f3d0d02
38 added, 20 removed. Audit A to A.
---
name: git-commit
- description: Git 提交并打 CalVer 标签。当用户说"提交"、"commit"、"打标签"、"tag"、"发版"时使用。
+ description: 当用户明确要求提交、打标签、发版或推送 git 变更时使用;适用于使用 CalVer 管理版本号的仓库。
---
# Git Commit with CalVer Tag
- 将当前更改提交到 git 并按 CalVer 规则打 tag。
+ 将当前仓库变更提交到 git,并按 CalVer 规则打 tag。
+ ## 核心规则
+
+ - **先提交,再算版本,再打 tag。**
+ - **版本号必须来自 `calver.py`,不得手动推断。**
+ - **`calver.py` 是本 skill 自带脚本,不属于项目仓库。**
+ - **如果无法可靠定位 skill 的安装目录,就停止。**不要猜路径,也不要继续后续步骤。
+ - **只有用户明确要求时,才执行 `git push` 和 `git push --tags`。**
+
+ ## 脚本定位
+
+ `calver.py` 指的是 skill 自带脚本,而不是项目仓库里的同名文件。
+
+ 执行时先定位 skill 的安装目录,再运行:
+
+ ```bash
+ python3 <skill安装目录>/scripts/calver.py
+ ```
+
+ 如果环境不能提供安装目录,或目录无法可靠确定,立即停止并告知用户。
+
## 工作流程
- 1. **更新 README.md**:将本次更新的摘要写入项目根目录的 `README.md` 文件底部的“更新记录”章节。
- 2. **检查文档**:如果项目中存在 `docs/` 目录,检查是否需要同步更新文档。不存在则跳过。
- 3. **Git 提交**:执行 `git add` 和 `git commit`。如果 `$ARGUMENTS` 非空,将其作为 commit message;否则根据变更内容自动生成。
- 4. **计算版本号**:运行以下命令获取下一个 CalVer 版本号(**禁止手动计算,必须使用此脚本**):
- ```bash
- python3 scripts/calver.py
- ```
- 5. **打 Tag**:使用脚本输出的版本号执行 `git tag <版本号>`。
- 6. **展示结果**:显示 commit 和 tag 信息,提示用户如需推送可执行:
- ```bash
- git push && git push --tags
- ```
+ 1. 查看仓库状态,确认当前变更范围。
+ 2. 只暂存并提交与当前任务相关的文件。
+ 3. 如用户提供额外的 commit message,则优先使用它。
+ 4. 运行 `calver.py` 获取下一个版本号。
+ 5. 用该版本号创建 tag。
+ 6. 如用户明确要求推送,再执行 `git push` 和 `git push --tags`。
## CalVer 规则
- 格式:`YY.WW.MICRO`
- - `YY`:ISO 年份后两位,无前导 0
- - `WW`:ISO 周数,无前导 0
- - `MICRO`:从 1 开始的全局递增序号,跨年不重置
+ - `YY`:ISO 年份后两位
+ - `WW`:ISO 周数
+ - `MICRO`:全局递增序号,跨年不重置
- ## 注意事项
+ ## 常见错误
- - 不自动执行 `git push`,推送是不可逆操作,需用户明确要求
- - 版本号计算完全依赖 `scripts/calver.py` 脚本,确保准确性
+ | 错误做法 | 正确做法 |
+ |---|---|
+ | 在项目仓库里找 `scripts/calver.py` | 在 skill 安装目录里执行脚本 |
+ | 找不到路径就手动算版本号 | 直接停止 |
+ | 用户没明确要求就 push | 先只提交和打 tag |
+ | 把无关文件一起提交 | 只提交当前任务相关文件 |