SuperAPI AI 工具集

jj

通用与其它

查看项目

更新于 10-15 20:32

技能介绍

用途:Jujutsu(jj)是 Git 兼容的版本控制系统,使用 Git 仓库作为存储后端,可与现有 Git 工具互操作。适合处理堆叠/依赖提交、change ID 与 commit ID、revset 提交选择、jj 冲突解决、Git 互操作、操作日志与撤销、历史改写(squash、split、rebase、diffedit)、bookmark(相当于分支)管理等场景。

主要能力:工作副本自动提交,无需暂存区;冲突可被提交并稍后解决;提交变化时其后代自动变基;操作日志支持撤销任意操作;revset 提供强大的提交选择;change ID 在重写后保持稳定(不同于 commit hash)。常用命令包括 jj git clone、jj git init、jj status、jj log、jj diff、jj new、jj describe、jj edit、jj squash、jj split、jj rebase、jj bookmark、jj git fetch、jj git push、jj undo、jj file annotate。

使用方式:在 jj 中工作副本始终是提交,多数命令执行时会先对工作副本做快照,例如 jj status、jj diff、jj log、jj describe。开始新工作时用 jj new 或 jj new -m "...";修改历史提交用 jj edit <change-id> 后 jj new;合并改动用 jj squash、jj squash -i 或 jj squash <file>。变基用 jj rebase -d main、jj rebase -s <rev> -d <destination> 等。bookmark 用 jj bookmark list/create/set/delete 管理,向后移动需加 --allow-backwards。冲突可在 jj log 中看到标记 × 的提交,用 jj new <conflicted> 后编辑并 jj squash,或用 jj resolve、jj resolve --tool :ours/:theirs,二进制冲突用 jj restore --from <rev> <file>。撤销用 jj undo、jj op log、jj op restore <op-id>。Git 互操作支持共置仓库(默认),可用 jj git import / jj git export,转换现有 Git 仓库用 jj git init --colocate。配置用 jj config edit --user 设置 user.name、user.email 等。

限制:jj split(不带文件参数)、jj diffedit、jj resolve(不带 --tool)本质上是交互式命令,无法完全非交互;部分 jj git push 参数组合不兼容,如 --all --allow-new、--tracked --allow-new;移动 bookmark 到祖先需 --allow-backwards;默认不能修改 trunk/带标签提交,需 --ignore-immutable 覆盖;共置仓库中 git status 可能显示 detached HEAD,属正常现象。未提供的收费、价格、平台与效果信息暂未说明。