jujutsu

Installation
SKILL.md

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

Command Description
jj st Show summary of working copy changes
jj diff Show diff of working copy changes
jj log Show graph of commits (by default, only unpushed commits)
jj evolog Show previous states (analogous to git reflog)
jj op log Show previous operations

Specifying revisions

Revset Header
@ Current revision (working copy)
@- Parent of current revision
a- Parent(s) of a
a-- Grandparent(s) of a
a+ Child(ren) of a
::a Ancestors of a (including a)
a:: Descendents of a (including a)
a..b Reachable from b but not from a
a | b Union of a and b
a & b Intersection of a and b
~a Not in a

Creating commits

For specific details on selecting which changes to include in a commit, and how to craft commit messages, see the /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.

Command Description
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

Command Description
jj git fetch Fetch from default remote
jj git fetch --all-remotes Fetch from all remotes
jj git push Push 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 command Description
jj gr Roughly equivalent to git log --oneline --graph
jj o Roughly equivalent to git log --oneline
jj oo Roughly equivalent to git log --oneline -10
jj last Show latest non-empty change with a non-empty description
jj tug Fast-forward closest bookmark to point at recent pushable change
Related skills
Installs
13
GitHub Stars
283
First Seen
Feb 11, 2026