96 lines
2.6 KiB
Markdown
96 lines
2.6 KiB
Markdown
---
|
||
name: git-submit
|
||
description: 执行 Git 提交和推送工作流
|
||
---
|
||
|
||
# Git 提交/推送工作流(Codex CLI)
|
||
|
||
当用户明确要求提交/推送时使用。
|
||
|
||
## 操作流程
|
||
|
||
### 1)检查当前状态(不需要用户确认)
|
||
|
||
- 查看分支/干净程度:`git status -sb`
|
||
- 查看变更概要:`git diff --stat`
|
||
|
||
如发现明显问题,优先在提交前处理:
|
||
|
||
- 误把生成物/大文件加入:先移除或补 `.gitignore`
|
||
- 变更跨度过大:提醒用户是否需要拆分提交
|
||
|
||
### 2)起草提交信息(中文;默认不需要用户确认)
|
||
|
||
根据对话历史和修改的文件信息,按下方规范直接生成提交信息并继续执行后续流程。
|
||
|
||
- 如果用户已经明确给出提交信息,直接使用用户提供的版本
|
||
- 如果用户没有指定提交信息,按下方规范自动生成最合适的一条
|
||
- **不要**为了 commit message 再额外等待用户确认,除非用户明确要求先看 message 再提交
|
||
|
||
#### Git Commit Message 规范
|
||
|
||
##### 1)格式
|
||
|
||
```text
|
||
<type>(<scope>): <subject>
|
||
```
|
||
|
||
说明:
|
||
|
||
- `<type>`:提交类型(必填)
|
||
- `<scope>`:影响范围/模块(必填)
|
||
- `<subject>`:一句话说明“做了什么”(必填)
|
||
|
||
---
|
||
|
||
##### 2)type 列表
|
||
|
||
统一使用小写:
|
||
|
||
| type | 含义 |
|
||
|---|---|
|
||
| `feat` | 新功能 |
|
||
| `fix` | 修复 bug |
|
||
| `docs` | 文档变更 |
|
||
| `style` | 仅格式/风格(不改语义) |
|
||
| `refactor` | 重构(不改变外部行为) |
|
||
| `perf` | 性能优化 |
|
||
| `test` | 测试相关 |
|
||
| `build` | 构建系统 |
|
||
| `ci` | CI 相关 |
|
||
| `chore` | 杂项维护 |
|
||
| `revert` | 回滚提交 |
|
||
|
||
---
|
||
|
||
##### 3)scope 列表
|
||
|
||
建议从以下范围中选择(保持一致即可):
|
||
|
||
| scope | 含义 |
|
||
|---|---|
|
||
| `frontend` | 前端(ANTLR 驱动、AST 构建入口等) |
|
||
| `ast` | AST 相关 |
|
||
| `sema` | 语义分析(符号表、常量求值等) |
|
||
| `ir` | IR 核心结构 |
|
||
| `irgen` | AST → IR 生成 |
|
||
| `mir` | Machine IR(指令选择、寄存器分配、栈帧等) |
|
||
| `backend` | 后端目标相关(如需要可细化 `aarch64`) |
|
||
| `antlr` | 语法文件/ANTLR 相关 |
|
||
| `build` | 构建配置 |
|
||
| `test` | 测试 |
|
||
| `doc` | 文档 |
|
||
| `misc` | 其他无法归类但需要说明的范围 |
|
||
|
||
提交信息示例:
|
||
|
||
```text
|
||
refactor(irgen): 简化 AST → IR 构建流程
|
||
```
|
||
|
||
### 3)后续流程(均不需要用户确认)
|
||
|
||
- 暂存所有改动:`git add -A`
|
||
- 单行摘要:`git commit -m "<type>(<scope>): <subject>"`,需要补充说明时用多行:`git commit -m "<summary>" -m "<detail 1>" -m "<detail 2>"`
|
||
- 推送:`git push`,推送完成后立即停止,不要再运行其他命令
|