jj-vcs
Jujutsu (jj) 使用
概览
用于在命令行和知识层面准确指导 Jujutsu(jj) 的日常操作、历史改写与 Git 互操作;必要时联动 jj help 与官方文档核验细节。
工作流决策树
- 确认上下文
- 获取版本与仓库类型:
jj --version,判断纯 jj 仓库还是 Git backend/colocated。 - 若执行过
git clean -xdf,.jj/会被清理,需要重新jj git init。 - 明确目标:查看、创建/编辑、重写历史、冲突处理、Git 互操作、配置/排错。
- 获取版本与仓库类型:
- 选择任务路径
- 基础操作与改写:读取
references/core-workflows.md - 修订选择(revset):读取
references/revsets-filesets.md的 revset 章节 - 文件集合(fileset):读取
references/revsets-filesets.md的 fileset 章节 - 配置与作用域:读取
references/config.md - 远端与书签:明确
bookmark与remote_bookmark的追踪关系
- 基础操作与改写:读取
- 输出时保持安全性
- 明确可回滚路径:
jj op log、jj undo、jj op restore - Git 混用场景说明 colocation 行为与
jj git import/export机制 - 远端历史改写前先创建备份书签
- 明确可回滚路径:
常见入口(只做索引)
jj st
jj log -r ::
jj diff --git
jj describe
jj new -m "message"
jj edit @
jj squash
jj rebase -s <revset> -d <revset>
jj split
jj bookmark list
jj bookmark create <name> -r <revset>
jj bookmark set <name> -r <revset> --allow-backwards
jj bookmark track <name>@<remote>
jj git clone <url>
jj git init
jj git fetch --remote <remote>
jj git push --remote <remote> --bookmark <name>
jj git remote add <name> <url>
jj git remote list
jj file untrack <paths...>
jj restore --from <revset>
jj op log
Git 远端与书签操作
初始化与远端配置
jj git init
jj git remote add origin git@github.com:org/repo.git
jj bookmark track main@origin
jj config set --repo git.fetch origin
jj config set --repo git.push origin
提交并推送(最常用流程)
jj status
jj commit -m "message"
jj bookmark set main -r @-
jj git push --remote origin --bookmark main
jj commit会把工作区内容写入当前变更并创建一个新的空工作变更,所以需要用@-指向刚提交的那个变更。- 若使用其他分支名,替换
main即可。
同步与推送
jj git fetch --remote origin
jj git push --remote origin --bookmark main
- 如果提示 “Refusing to create new remote bookmark”,先执行:
jj bookmark track main@origin
覆盖远端历史(高风险)
jj bookmark set main -r <revset> --allow-backwards
jj git push --remote origin --bookmark main
- 建议先备份远端
main:
jj bookmark create backup-main -r main@origin
jj git push --remote origin --bookmark backup-main
从远端恢复工作区
jj restore --from main@origin
典型问题与排错
- 远端书签冲突:先
jj bookmark track main@origin,再根据冲突提示移动本地书签。 - 超大文件无法快照:优先加入
.gitignore,或临时提高阈值:jj config set --repo snapshot.max-new-file-size <bytes>
- 嵌套仓库:在子目录执行
git init/jj git init会产生嵌套仓库,需要删除子目录.git。
交付原则
- 用最少命令达成目标;给出 1–2 条备选命令即可。
- 对不确定细节,优先引导
jj help <cmd>或官方文档对应章节。 - 输出包含 revset/fileset 时,提醒用户使用引号避免 shell 解析问题。
More from m4n5ter/skills
docx
全面的文档创建、编辑和分析,支持修订(tracked changes)、批注、格式保留和文本提取。当需要处理专业文档(.docx 文件)用于:(1)创建新文档,(2)修改或编辑内容,(3)处理修订,(4)添加批注,或任何其他文档任务时使用。
1agent-browser
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.
1training-data-curation
Guidelines for creating high-quality datasets for LLM post-training (SFT/DPO/RLHF). Use when preparing data for fine-tuning, evaluating data quality, or designing data collection strategies.
1tinker-training-cost
Calculate training costs for Tinker fine-tuning jobs. Use when estimating costs for Tinker LLM training, counting tokens in datasets, or comparing Tinker model training prices. Tokenizes datasets using the correct model tokenizer and provides accurate cost estimates.
1design-postgres-tables
Comprehensive PostgreSQL-specific table design reference covering data types, indexing, constraints, performance patterns, and advanced features
1ask-questions-if-underspecified
Clarify requirements before implementing. Do not use automatically, only when invoked explicitly.
1