Skill

version-control

How to use `jj`, the Jujutsu version control system

From jj
Install
1
Run in your terminal
$
npx claudepluginhub wincent/wincent-claude-plugins --plugin jj
Tool Access

This skill uses the workspace's default tool permissions.

Skill Content

Jujutsu (jj)

Jujutsu (or, simply, jj) is a Git-compatible version control system that is usually used in "colocated" form (that is, alongside the .git directory in the repository, there will also be a .jj directory; the presence of the latter can be used to infer that you are in a jj repository). When in a jj repository, you can still use Git commands to examine objects in the repository (for example, commands like git show, git log, and git grep) but when creating commits you should use jj commands.

Jujutsu's most distinctive feature is that it does not have a staging area. Any time you run a jj command, it will automatically create a snapshot of the working directory. jj respects .gitignore files and will not include them in snapshots. To stop tracking a file that was unintentionally included in a snapshot, modify .gitignore then use jj file untrack <file>....

Common commands

CommandDescription
jj stShow summary of working copy changes
jj diffShow diff of working copy changes
jj logShow graph of commits (by default, only unpushed commits)
jj evologShow previous states (analogous to git reflog)
jj op logShow previous operations

Specifying revisions

RevsetHeader
@Current revision (working copy)
@-Parent of current revision
a-Parent(s) of a
a--Grandparent(s) of a
a+Child(ren) of a
::aAncestors of a (including a)
a::Descendents of a (including a)
a..bReachable from b but not from a
a | bUnion of a and b
a & bIntersection of a and b
~aNot in a

Creating commits

For specific details on selecting which changes to include in a commit, and how to craft commit messages, see the /jj:commit skill.

Note that you will never run jj commit without file arguments unless your user instructs you to do so; instead pass explicit files to be included.

CommandDescription
jj commit <file>...Create a commit containing specific changes
jj split <file>...Create a commit containing specific changes (also updates bookmarks)

Interacting with Git remotes

CommandDescription
jj git fetchFetch from default remote
jj git fetch --all-remotesFetch from all remotes
jj git pushPush to default remote
jj git push --remote <remote>Push to a named remote

Custom aliases and commands

Your user has defined a number of useful aliases and commands in ~/.config/jj/config.toml, including:

Alias or commandDescription
jj grRoughly equivalent to git log --oneline --graph
jj oRoughly equivalent to git log --oneline
jj ooRoughly equivalent to git log --oneline -10
jj lastShow latest non-empty change with a non-empty description
jj tugFast-forward closest bookmark to point at recent pushable change
Similar Skills
cache-components

Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.

138.5k
Stats
Parent Repo Stars0
Parent Repo Forks0
Last CommitMar 20, 2026