commitlisted
Install: claude install-skill hacxy/skills
所有操作仅限当前工作区项目(即当前工作目录所在的 git 仓库),不得对其他项目执行任何 git 操作。
按照以下步骤创建 git 提交:
1. 运行 `git status` 和 `git diff`(已暂存和未暂存)以了解所有变更
- 若变更文件较多且范围不同(例如功能、修复、重构、文档混杂),先按变更目的分组,准备分多次提交
2. 运行 `git log --oneline -5` 以了解该仓库使用的提交信息风格
3. **安全检查**:检查变更中是否存在人为修改或删除操作(即非当前会话中由 Claude 产生的改动)。如果存在,列出这些文件并向用户确认是否一并提交。用户确认后才继续;否则排除这些文件。
4. 默认暂存当前项目下所有未暂存的修改和未跟踪的文件(使用 `git add` 逐个指定文件名,不要暂存 .env 文件或密钥)
5. 解析 `$ARGUMENTS`:
- 若包含 `--lang=<code>`,提取语言设置(支持 `zh`/`zh-CN` 为中文,`en`/`en-US` 为英文),其余部分作为提交内容的提示
- 若未指定 `--lang`,默认使用**中文**
6. 按照 Conventional Commits 格式编写简洁的提交信息:`type: description`
- 常见类型:`feat`、`fix`、`refactor`、`chore`、`docs`、`test`、`ci`
- 主题行保持在 72 个字符以内
- 用步骤 5 确定的语言撰写 description 部分
7. 直接使用以下命令创建提交,无需向用户确认提交信息:
```
git commit -m "..."
```
不要在提交信息中添加任何 `Co-Authored-By` 行。
- 当需要分组提交时,按分组重复执行"暂存 -> 生成提交信息 -> 提交",直到该组完成
8. 每次提交后重新运行 `git status` 检查剩余变更:
- 若仍有未提交变更,继续下一组提交
- 目标是确保本次要处理的所有变更最终都已提交
9. 所有提交完成后,列出本次新产生的提交信息(使用 `git log --oneline` 按本次提交数量展示)。
10. 直接检查当前分支是否已有上游分支:
- 有上游分支:执行 `git push`
- 无上游分支:执行 `git push -u origin HEAD`
如果没有可提交的内容,说明情况并停止。