关于 jujutsu
面向在与 Git 共置的仓库中使用 Jujutsu(jj)的开发者,介绍其版本控制方式。重点说明工作副本即提交的模型,并将常见 Git 操作对应到 jj 命令。
主要功能
- 01Git 操作到 jj 命令的映射
- 02工作副本与提交模型
- 03书签及远程操作流程
- 04命令与工作流参考
适用场景
- 01将常见 Git 操作转换为 jj 操作
- 02查看变更与修订历史
- 03获取或推送仓库更新
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ cryfs/ cryfs --skill jujutsu安装后在 Claude Code 中输入/jujutsu确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
commands-reference.mdrevsets.mdworkflows.md详细介绍
Jujutsu (jj) 版本控制指南
Jujutsu 是一种现代、兼容 Git 的版本控制系统。本项目将 jj 与 git 并置使用。
与 Git 的主要区别
| 概念 | Git | Jujutsu |
|---|---|---|
| 暂存区 | 显式执行 git add | 无——工作副本本身就是一个提交 |
| 分支 | 命名引用 | 书签(会自动跟随改写) |
| 储藏 | 独立的储藏栈 | 不需要——直接使用提交即可 |
| 修改提交 | git commit --amend | 直接编辑文件,或使用 jj squash |
| 标识 | 仅提交 ID | 变更 ID(稳定)+ 提交 ID |
基本命令
| 任务 | 命令 |
|---|---|
| 状态 | jj status 或 jj st |
| 差异 | jj diff |
| 日志 | jj log |
| 提交并继续 | jj commit -m "message" |
| 更新说明 | jj describe -m "message" |
| 新建空提交 | jj new |
| 合并到父提交 | jj squash |
| 撤销上次操作 | jj undo |
| 从远程获取 | jj git fetch |
| 推送到远程 | jj git push |
| 创建并推送书签 | jj git push --named name=@ |
| 推送现有书签 | jj git push --bookmark name |
工作副本模型
工作副本(@)始终是一个提交。文件更改会自动跟踪,无需暂存。
parent commit
↓
@ (working copy) ← your edits go here automatically
Git 到 Jujutsu 快速对照
| Git | Jujutsu |
|---|---|
git status | jj st |
git diff | jj diff |
git log | jj log |
git add . && git commit -m "msg" | jj commit -m "msg" |
git push | jj git push |
git pull | jj git fetch,然后执行 jj rebase -d main@origin |
git checkout -b branch | 执行 jj new main,然后执行 jj bookmark set branch |
git branch | jj bookmark list |
git stash | jj new(直接开始新提交) |
git blame | jj file annotate |
其他参考资料
- commands-reference.md - 完整的命令参考
- workflows.md - 常见开发工作流
- revsets.md - 修订版选择语法
评论
支持 Markdown