SuperAPI AI 工具集

awesome-git-commit-plan

编程与开发

查看项目

更新于 10-16 11:17

技能介绍

用途

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 目录的完整验证,但可初始化临时仓库进行路径清点和验证。
  • 计划文件不会覆盖已存在的文件,会使用下一个可用名称。
  • 验证过程在临时分支进行,完成后删除,不产生持久工件。