激动
每个代理会话的无损失版本控制:可发布,可恢复. 与克洛德代码,Codex,OpenCode,和Cursor合作.
在磁盘上,会话只是JSONL文件,可以被覆盖,压缩,和
随时清理. agit 把快照和版本放在上面,
因此,"上周三的对话 终于打破了虫子"变成了
你可以找到的东西,继续, 并交给一个队友.
agit choose a session to continue
agit new choose a repo and name a fresh conversation
agit import choose an existing runtime conversation to adopt
agit log choose a session and browse its history
agit push choose a saved session to publish
agit share choose a session and review link settings
agit run owner/repo@ref open a saved source, forking when needed
这些光线命令在人类终端打开它们的接口. agit resume
继续同一会话,永远不要叉; agit run 可以启动新的可写文件
从标签、历史点或其他作者的源头.
在通过的一个代理会议, agit commit 保存已完成的回合和
agit push 发布会议。 对于脚本,通过目标明确,
比如说 agit push owner/repo@branch --json。目录分支指针不会
选择目标 commit, (中文(简体) ), push 或者说 share。 。 。 .
在用户界面启动时, agit 检查更新版,最多一天一次,打印a
提醒到 stderr; 它永远不会自动升级 。 JSON/quiet/CI和内钩/MCP路径
跳过此提醒 .
采用和记录第一个版本是一个命令——中间
状态("链接,但未经编辑")对任何人无意义. 标记会话
(例如离线),通过 --link-only。 。 。 .
使用完整的本地会话ID,以及明确的运行时间和目的地来发现世系.
终端提供经核实的本地基地,独立进口,或取消. 非交互式
调用不写入的返回选择; 通过 --onto <ref> 或者说 --independent 来选择路径.
--propose-lineage 在不通过会话的情况下打印只读的报告.
检查现有寄存器中的分系需要 NUL-framed Git worktree 输出,
通常以2.36吉特或更新版本提供。 不支持的 Git 报告 git_worktree_format· ;
明确 --onto, (中文(简体) ), --independent,以及 --link-only 进口保留其普通支票.
agit clone 本地获取仓库历史 。 使用 agit run 或者说 agit resume
开始运行时间。 一个克隆是 默认只读 在枢纽上: 没什么
以您的名义创建 origin 点在源. agit clone --mine
创建您的副本, 重点 origin 并记住源是 upstream。 。 。 .
完整命令列表在 agit --help。 。 。 .
安装
用户: npm
npx -y create-agit@latest # one-shot: installs agit + wires skills/hooks/MCP
# or as a global package:
npm install -g @einsia/agent-git --allow-scripts=@einsia/agent-git
agit --version
两条路线都安装了预建的二进制——不需要Rust工具链. 无
选择匹配您的平台子包 os编号 :cpu; 在没有的平台上
预建二进制( 如 FreeBSD) 运行 agit 打印创建源的食谱.
细节和环境变量: npm/README.md。 。 。 .
Windows x64软件包包括原生的对等的RC守护进程. 在Windows、Linux和macOS上运行
agit login 接下来是 agit rc start --detach 以注册设备并允许您自己的
从工作空间控制它。 Windows 拥有者 RPC 使用本地命名管限制
到当前用户。 RC状态需要一个私有,用户拥有的目录.
全局包从安装脚本中取出电线技能,钩子和MCP. 中午12点及以后
跳过未允许的安装脚本, 也就是说 --allow-scripts 以上为:;
组织政策strict-allow-scripts, (中文(简体) ), ignore-scripts)也可以阻挡或跳过. 下
小时( pnpm )pnpm add -g @einsia/agent-git)安装脚本则不配置任何内容。 如果安装
脚本未运行, 未运行 agit setup 曾经是你自己 它建立了运行时间 安装在当时,
所以在安装另一个后再运行它.
Linux的艺术品是 粘接静态连接因此,没有最小的glibc—— 释放管道在高山/亚马逊 Linux 内部运行每个 Linux 二进制 Debian / Ubuntu 容器矩阵在发布前.
预建的二进制包括 Git 和 Git LFS, 首先提取到私人缓存
使用时。 您的外壳 PATH 和全球 Git 配置保持不变 。 来源构建
使用系统 Git; AGIT_USE_SYSTEM_GIT=1 在预建的二进制中选择它 .
见 运行时间配置和源先决条件。 。 。 .
不安装
@einsia/agentgit(无连字符)——这是前作重写 CLI;其协议与这个分支不相匹配,也不会奏效.
贡献者/热心用户:来源
git clone https://github.com/Einsia/agent-git
cd agent-git
./setup.sh
setup.sh 检查工具链(rustc, a C 编译器),构建和安装
二进制为 ~/.local/bin/agit。共同旗帜:
./setup.sh --debug # no LTO, much faster while hacking
./setup.sh --test # run cargo test --lib before installing
./setup.sh --help
构建一个二进制中枢是中转部署的二进制,设置建设时间默认值
当然 运行时间 AGIT_HUB_URL 财务报告和审定财务报表 agit config hub.url ... 仍然优先:
AGIT_DEFAULT_HUB_URL=https://staging.agent-git.com cargo build --release --locked
GitLab 内部管道包已承诺处理 dev 财务报告和审定财务报表 staging 使用此设置构建
内嵌。 他们 agit --version 输出包括信道和源输入,以及 agit upgrade
被禁用,所以接受测试二进制不能沉默地变成公开发布.
只有已存在的 GitHub agit-v* 标签生成 prod 频道. 标签驱动运行“释放”
工作流程自动; 操作员也可以通过工作流程选择相同的已审查标签
手动生产输入以重试失败的释放而无需创建不同的文物身份.
要求数 生锈 = 1.88 和 C 编译器rusqlite 使用该 bundled
特性,所以 sqlite 的 C 源是在构建过程中编译的 。 其原因为何
工具链地板在 docs/01_setup.md。 。 。 .
两种路径都安装了相同的二进制. npm是用于"不想碰的用户"
生锈"; setup.sh 是用来"改变代码的人"和"运行的人"
未发行版本".
文档
| 目标 | 何处 |
|---|---|
| 构建、 运行后端、 签名、 调试 | docs/01_setup.md |
| 如何在本地存储会话 | docs/02_session_store.md |
| 人类的终端接口 | docs/07_tui.md |
| 登录/ 符号力学 | docs/commands/auth.md |
| 本地低强度秘密过滤 | docs/05_global_secret_filter.md |
| 可撤消存储库密钥占位符 | docs/06_repository_secret_dictionary.md |
| 每个运行时间的预留存储格式 | docs/mechanism-probing/ |
| npm 软件包行为和env vars | npm/README.md |
| 公布文物命名合同 | .github/RELEASE_ARTIFACTS.md |
| 每一版的变化 | CHANGELOG.md |
服务器( E)探员吉特)是一个单独的存储库,单独部署.
释放
Cargo.toml 是版本的单一源; 每个 npm 显示必须
同意它(node scripts/check-version.js - 在CI和之前运行
npm pack) (中文(简体) ). 为了移动版本,改变一个镜头中的每个位置:
node scripts/bump-version.mjs 0.1.0 # Cargo.toml + Cargo.lock + all npm manifests
释放笔记在现场 CHANGELOG.md他们先来,写下
版本的 ## [x.y.z] 区域,然后是凸起. bump-version.mjs 拒绝触摸文件
版本没有一节,以及 check-version.js 拒绝一个在CI和之前 npm pack。 。 。 .
该部分成为了 GitHub 释放体(scripts/release-notes.mjs 把它提取出来
release.yml,在放出标签上贴上存储库-相对链接)和船舶在内
页:1 @einsia/agent-git 软件包.
只有释放分支( E)release/<version>)编辑 CHANGELOG.md合并
请求在描述中每对用户可见的更改设置一行,或 Changelog: none数字 :
Changelog: Added|Changed|Fixed|Security: <one sentence for users>
发行分会将这些行收集入版本的分会. 线人
changelog:released 失败更改文件的任何其他合并请求: 它添加的行
下级 ## [Unreleased] 可以在不发生冲突的情况下合并到已发布的区域.
发行后合并请求通过CI后,将其合并到GitLab main 当它的头
包含 main'tip, 在标签存在之前不要合并其他任何内容 。 等着
输油管 mirror:github,然后运行其手册 release:github-tag 任务。 CI拒绝
释放其树不是释放合并请求的头部
已录入源到映射并创建 agit-v<version> 在公众镜子上
承诺 释放标记是不可改变的;一个已失效的管道在任一标记之后都无法发布
main 移动.
mirror:github 不等待着 main 管道的Windows建设. 视窗是
检查每个合并请求 rust:test:windows,对于释放运行
在 npm 之前再次通过 GitHub 发布工作流程.
镜像重写会承诺ID,所以来源SHA不是释放SHA. 别 将释放标记直接推到 GitHub 。 CI 创建的标签启动 GitHub 发布 工作流程,构建和检查每个目标的二进制,Windows包括, 然后触发 npm 发布.
通过npm登记册向用户分发:每艘目标船舶作为
平台子软件包(@einsia/agent-git-linux-x64 和朋友,门由
os编号 :cpu —— npm 只安装匹配的, 和主
@einsia/agent-git 把他们拉进来 optionalDependencies。 GitHub 软件
释放出油管花球 SHA256SUMS
(单位:千美元)合同) (中文(简体) ).
发布到 npm 是 npm 发布 工作流程。 自动运行
一旦发布工作流程完成绿色(并可手动发送)——
行动 npm 发布——供重审, next 审判,或 dry_run) (中文(简体) ).
它以抚养顺序出版全家——平台包
@einsia/agent-git → create-agit ——真正在全球安装主机
通过 npm 信任的出版进行认证
(OIDC,没有存储的代号). 等效的本地倒计时 :
gh release download agit-v0.1.0 -p 'agit-*.tar.gz' -D /tmp/agit-dist
node npm/publish.mjs /tmp/agit-dist # platform packages → main → create-agit
npm/create-agit/ 是后面的一发安装器 npx -y create-agit@latest - 这个
取决于主软件包,并将 npx 缓存副本转换为耐用
~/.local/bin/agit,然后通过 agit setup。这里有
故意不使用未瞄准的别名包 : agit npm 属于无关的
npm 的打字规则块 agent-git 作为一分
离开第三方 agentgit。 。 。 .
版本预告( A)GET /api/cli/version )和 agit upgrade
两者都读取 npm 登记册;完整性核查使用登记册的
SRI (sha512) (英语). 内部叉口集线器
AGIT_BACKEND_CLI_REPO 整个链条恢复到 GitHub 路径.
@einsia/agent-git 是一个没有已有用户的新软件包名称, 因此
第一次发布直接到 latest - 不用躲起来 next 先说.
(旧的) @einsia/agentgit 留在原地;它指向前重写 CLI。 )