星枢终端项目采用 Conventional Commits 规范,使用 Commitlint 自动检查提交消息格式
<可选 emoji> <type>(<scope>): <subject>
<body>
<footer>✨ feat(connections): 添加 SSH 连接断线自动重连功能
实现了 SSH 连接意外断开时的自动重连机制:
- 最多重试 3 次
- 每次重试间隔递增(1s, 2s, 4s)
- 保持终端状态不变
Closes #123| Type | 说明 | 示例 |
|---|---|---|
feat | 新功能 | feat(batch): 添加批量命令执行功能 |
fix | Bug 修复 | fix(sftp): 修复文件上传进度显示错误 |
docs | 文档变更 | docs: 更新 API 文档 |
style | 代码格式(不影响功能) | style: 统一缩进为 2 空格 |
refactor | 重构(既不是新功能也不是修复) | refactor(auth): 简化登录逻辑 |
perf | 性能优化 | perf(websocket): 优化心跳机制 |
test | 测试相关 | test(connections): 添加单元测试 |
build | 构建系统或外部依赖变更 | build: 升级 TypeScript 到 5.x |
ci | CI 配置文件和脚本变更 | ci: 添加自动化依赖审计 |
chore | 其他变更 | chore: 更新 .gitignore |
revert | 回退之前的提交 | revert: 回退 feat(batch) 提交 |
security | 安全修复(自定义) | security: 修复 SQL 注入漏洞 |
release | 发布版本(自定义) | release: v1.2.0 |
Scope 用于说明提交影响的范围,可以是模块名、文件名或功能名。
connections - 连接管理sftp - 文件传输auth - 用户认证batch - 批量操作ai-ops - AI 智能运维websocket - WebSocket 通信database - 数据库frontend - 前端backend - 后端docker - Docker 相关settings - 设置notifications - 通知audit - 审计日志ui - 用户界面如果变更影响多个范围,可以省略 scope 或使用 * 表示全局。
✨ feat(auth): 添加 Passkey 登录支持
🐛 fix(sftp): 修复上传大文件时内存溢出问题
refactor(websocket): 重构心跳机制以提高性能添加了新功能。 # 缺少 type
feat: update # subject 太简短
feat(auth): 添加了。 # 使用了"了",不是祈使句
FIX: some bug. # type 应该小写,subject 应该用中文
feat(auth): 添加功能。 # 主题不应该以句号结尾- 或 * 列出要点feat(batch): 添加批量命令执行功能
实现了在多个服务器上并发执行命令的功能:
- 支持自定义并发数(1-50)
- 支持超时控制(1-3600 秒)
- 支持任务取消与进度追踪
- 实时 WebSocket 推送子任务状态
数据库新增 batch_tasks 和 batch_subtasks 表。使用 Closes、Fixes、Resolves 关键字关联 Issue:
Closes #123
Fixes #456, #789
Resolves #100如果变更包含破坏性改动(不向后兼容),需要在 footer 中说明:
BREAKING CHANGE: 移除了旧版 API v1,请迁移到 v2或者在 type 后面加 !:
feat(api)!: 重构 RESTful API 结构git commit -m "fix(sftp): 修复文件下载中文文件名乱码"git commit -m "feat(ai-ops): 添加系统健康分析功能
实现了基于 AI 的系统健康分析:
- 分析 CPU、内存、磁盘使用率
- 识别异常进程和资源泄漏
- 提供优化建议
Closes #234"git commit -m "refactor(database)!: 重构数据库 Schema
将 connections 表拆分为 ssh_connections 和 rdp_connections,
提高查询性能并简化数据结构。
BREAKING CHANGE: 旧版数据需要执行迁移脚本 migrate_v2.sql
Closes #345"项目使用 Husky + Commitlint 在提交时自动检查格式:
scripts/check-smart-quotes.js 会检查暂存区代码文件中的 ‘ ’ “ ”,命中即阻止提交,避免引号边界问题。lint-staged 对暂存代码执行 eslint --fix 与 prettier --write,减少格式化噪音进入提交历史。lint-staged 后强制执行 npm run -s quality:check,统一覆盖 debt:check、前端 typecheck、零 warning lint 与 format:check。SKIP_PRECOMMIT_QUALITY=1 跳过 quality:check,但仍保留 lint-staged 对暂存区的检查;建议仅短期使用并尽快补齐全仓质量。debt:check 持续拦截新增 : any / <any> / any[],并过滤注释类噪音,避免无效告警干扰提交。$ git commit -m "update code"
⧗ input: update code
✖ subject may not be empty [subject-empty]
✖ type may not be empty [type-empty]
✖ found 2 problems, 0 warnings$ git commit -m "✨ feat(connections): 添加连接分组功能"
[main 1a2b3c4] feat(connections): 添加连接分组功能
3 files changed, 150 insertions(+), 20 deletions(-)commitlint.config.js.husky/pre-commit、.husky/commit-msg.lintstagedrc.jsscripts/check-smart-quotes.js@commitlint/config-conventional是的。提交信息开头必须包含一个 Emoji 或 Gitmoji,例如:
✨ feat(websocket): 增加静默执行路径同步
:bug: fix(lint): 修复 eslint-plugin-import 异常不带 Emoji 的提交信息将被 commit-msg hook 拒绝。
是的。为了保持项目一致性,所有提交消息的 subject 和 body 应使用简体中文。
优先使用受控方式,仅跳过全仓质量门禁并保留暂存区检查:
SKIP_PRECOMMIT_QUALITY=1 git commit -m "✨ feat(scope): 示例"如果确实需要(如紧急修复)再使用:
git commit --no-verify -m "emergency fix"但这会跳过所有 Git hooks(包括代码检查),请谨慎使用。
WIP(Work In Progress)提交会被自动忽略,但建议使用正确的格式:
git commit -m "wip: 正在开发批量操作功能"不会。Commitlint 会自动忽略以 Merge branch 开头的提交。
文档生成时间:2025-12-23 相关任务:工具链 - 实施 Commitlint