用途
awesome-git-commit-plan 用于将一个代码库规划为可二分查找的提交序列。它读取代码库,映射各部分之间的依赖关系,并将其拆分为一系列提交,使得每个提交都能独立构建且其测试通过。最终输出为一个计划文件,包含从 #1 到 #N 的提交编号、每个提交的信息及其精确的文件集。该技能不会实际提交或推送任何内容,也不会写入被分析的仓库。
主要能力
- 依赖映射:通过分析文件间的导入关系,构建导航图,识别叶子节点、深度、循环依赖和热点文件。
- 提交拆分:根据依赖图将文件分配到不同的提交中,支持分层、垂直或手动策略,并可调整粒度(粗、默认、细)。
- 可二分性验证:在临时克隆中重放提交序列,运行仓库自身的构建和测试命令,确保每个提交都能通过适用的门禁。
- 规则遵循:读取并遵循仓库自身的提交信息规则(如 commitlint 配置、钩子、CONTRIBUTING.md 等),确保提交信息格式一致。
- 只读安全:所有操作在临时克隆或工作树中进行,不会修改用户的代码库。
使用方式
通过命令调用:
/awesome-git-commit-plan <repository-url-or-path> [--out <file>] [--commits N] [--granularity coarse|default|fine]
[--verify full|build|off] [--strategy layered|vertical|manual] [--slice on|off]
<repository-url-or-path>:必需,远程 URL、本地 Git 仓库或无 Git 的源码目录。--out <file>:计划文件路径,默认<repo-name>-commits.txt。--commits N:目标提交数量。--granularity:粒度,coarse(子系统)、default 或 fine(模块级)。--verify:验证级别,full(默认,构建和测试)、build(仅编译或类型检查)或 off(不重放)。--strategy:策略,layered(默认)、vertical(按用户可见能力)或 manual(用户提供分组)。--slice on|off:是否允许将大文件拆分到多个提交中。
适用场景
- 需要将大型代码库拆分为可审查、可二分查找的提交序列时。
- 准备进行代码历史重建或迁移时。
- 希望确保每个提交都能独立构建和通过测试时。
- 需要遵循仓库自身提交规范时。
限制
- 需要 Git 环境,且对于
--verify full和build,需要仓库自身的工具链。 - 对于外部仓库,运行安装步骤、生命周期脚本和测试套件前需要用户确认。
- 如果工具链缺失,会报告并询问是否继续,不会静默降级。
- 不适用于非 Git 目录的完整验证,但可初始化临时仓库进行路径清点和验证。
- 计划文件不会覆盖已存在的文件,会使用下一个可用名称。
- 验证过程在临时分支进行,完成后删除,不产生持久工件。