Skip to content

Repository files navigation

Agent-Git

面向 AI 编程助手的 Git checkpoint 工作流工具包。

Agent-Git 用临时 checkpoint 保护任务开始前或阶段之间已有的工作区变更;修改失败时可以回滚,任务完成后可以把连续 checkpoint 和当前未提交变更压缩成一个整洁的正式提交。

项目采用 core + adapters 架构。Git 业务逻辑只存在于 @agent-git/core;CLI 和 MCP 是两种独立的运行时入口,Skill 是可安装的 Agent 工作流说明。

工作原理

典型工作流如下:

  1. 使用 status 确认分支、工作区变更和待合并 checkpoint。
  2. 如果当前已有需要保护的未提交变更,使用 save 将它们提交为临时 checkpoint。
  3. 修改代码并验证结果;进入新的高风险阶段前,可以再次保存已有变更。
  4. 修改失败且明确需要丢弃时,使用 undo 回滚。
  5. 任务完成后先使用 squash --preview 检查合并范围,再执行正式 squash

save 保存的是执行命令时已经存在的变更。如果工作区干净,它会跳过 checkpoint;干净仓库的当前 HEAD 已经是可恢复的基线,无需创建空提交。

前置条件

  • 已安装 Git,并且 git 命令可用。
  • 已安装 Node.js 和 npx
  • workspace 必须是 Git 仓库中的目录,建议传入仓库根目录的绝对路径。
  • 执行 undo 或压缩 checkpoint 前,建议仓库至少已有一个正常的基础提交。

选择使用方式

使用场景 推荐入口 说明
在终端中直接使用 @agent-git/cli 命令明确,适合人工调用和脚本。
使用支持 Skills 的 Agent @agent-git/skill + CLI Skill 指导 Agent 按安全流程调用 CLI。
使用支持 MCP tools 的 Agent 客户端 @agent-git/mcp 客户端通过 stdio MCP Server 调用结构化 tools。
在项目代码中复用业务逻辑 @agent-git/core 内部核心包,不单独发布。

Skill 和 MCP 是两种独立入口。同一个工作流步骤不要同时通过 CLI 和 MCP 重复执行。

快速开始

CLI

先查看状态:

npx -y @agent-git/cli@latest status --workspace /path/to/repo

如果工作区已有需要保护的变更,创建 checkpoint:

npx -y @agent-git/cli@latest save --workspace /path/to/repo --message "准备继续重构订单流程"

任务完成后先预览,再创建正式提交:

npx -y @agent-git/cli@latest squash --workspace /path/to/repo --summary "feat: 重构订单流程" --preview
npx -y @agent-git/cli@latest squash --workspace /path/to/repo --summary "feat: 重构订单流程"

Windows PowerShell 示例:

npx -y @agent-git/cli@latest status --workspace "D:\files\project"

完整的命令、参数、输出和错误说明参见 @agent-git/cli 文档

Skill

在目标项目根目录执行:

npx -y @agent-git/skill@latest install --target codex

安装到所有支持的客户端目录:

npx -y @agent-git/skill@latest install --target all --force

Skill 只安装工作流说明,实际 Git 操作仍通过 Agent-Git CLI 执行。安装目标、覆盖和升级方法参见 @agent-git/skill 文档

MCP Server

支持 mcpServers 配置的客户端可以使用:

{
  "mcpServers": {
    "agent-git": {
      "command": "npx",
      "args": ["-y", "@agent-git/mcp@latest"]
    }
  }
}

配置后可使用 agent-git_statusagent-git_saveagent-git_undoagent-git_squash。完整 schema 和调用示例参见 @agent-git/mcp 文档

安全说明

Agent-Git 会真实修改 Git 暂存区和提交历史,执行前请确认操作范围:

  • save 会执行 git add .,把整个 workspace 中可暂存的已有变更纳入 checkpoint。
  • save 不会创建空提交;工作区干净时会直接跳过。
  • squash --preview 不创建正式提交,但当前实现仍会执行 git add .,因此可能改变暂存区状态。
  • 正式 squash 会压缩从 HEAD 开始连续出现的 AI Checkpoint,并把当前未提交变更一并提交。
  • undo --steps N 使用硬重置回退最近 N 个提交,同时丢弃未提交变更;当前实现不会验证这些提交是否都是 AI Checkpoint。
  • 对已经推送或与他人共享的提交执行 undosquash 可能造成历史分叉,请谨慎使用。

在不确定时,先运行 Agent-Git status,并使用原生 git statusgit log 再次核对。

包列表

职责 文档
@agent-git/core Git checkpoint 工作流的核心业务逻辑。 README
@agent-git/mcp 面向支持 MCP tools 的 Agent 客户端。 README
@agent-git/cli 供 Skill 工作流和终端直接调用。 README
@agent-git/skill 可安装的 Agent-Git 工作流说明。 README
@agent-git/typescript-config 共享 TypeScript 和 tsdown 配置。 README

架构原则

  • core 负责 Git 命令、workspace 校验、checkpoint 识别、回滚和 squash 行为。
  • mcp 负责 MCP schema、tool 注册、结果格式化和错误包装。
  • cli 负责命令解析、终端输出和退出码。
  • skill 负责工作流说明和不同 Agent 客户端的安装路径。
  • typescript-config 负责共享 TypeScript 相关配置。

适配层不能复制 core 的 Git 业务逻辑。

本地开发

pnpm install
pnpm run typecheck
pnpm run lint
pnpm run build

builddev 由 Turborepo 编排,包产物会按依赖关系增量构建并缓存。

在本地运行入口:

pnpm --filter @agent-git/cli start -- status --workspace /path/to/repo
pnpm --filter @agent-git/mcp start
pnpm --filter @agent-git/skill start -- install --target codex

发布

项目使用 Changesets 管理版本和发布:

pnpm changeset
pnpm version-packages
pnpm release

可发布包包括 @agent-git/mcp@agent-git/cli@agent-git/skill

内部包不参与发布:

  • @agent-git/core:构建时被打进 MCP 和 CLI 产物。
  • @agent-git/typescript-config:内部配置包。

许可证

MIT

About

面向 AI 编程助手的 Git 工作流工具包

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages