用途:jj-core 用于通过 Jujutsu(jj)管理版本控制。jj 是兼容 Git 的 VCS,采用不同数据模型:没有暂存区,改动即时生效,工作副本中每个文件都作为“changes”被跟踪。
主要能力:创建与描述改动(jj new、jj desc -m)、查看历史与差异(jj log、jj diff)、编辑既有改动(jj edit、jj squash)、历史导航(jj edit @-、jj next --edit、jj new --before @)、压缩与拆分(jj squash、jj split、jj absorb)、变基与合并(jj rebase、jj new x yz -m)、冲突解决(jj resolve)、推送到 Git(jj bookmark create、jj git push --bookmark、jj git fetch、jj bookmark track)、撤销操作(jj undo)、操作历史(jj op log)。
使用方式:在 jj 仓库中执行上述命令。模板语法使用 jj 自有语言,字符串拼接必须用 concat(),字段名是 description 而非 desc,含管道符的修订集需用双引号。
限制与注意:切勿在 jj 仓库中用 git 做变更操作,会破坏历史;只允许 git log、git diff、git show、git blame、git grep。常见陷阱:用 @- 而非 @~1;用管道 a | b | c 而非逗号;用 jj log 或 jj diff 而非 jj changes;jj desc 后工作副本 @ 会移动,应使用原始 change ID 验证。
适用场景:需要无暂存区、即时改动与智能变基的 Git 兼容版本控制工作流。