jj
Jujutsu, a version control system. Some subcommands such as `log`, `desc`, `new`, `git`, etc. have their own usage documentation.
More info →Subcommands (30)
Abandon a revision, rebasing descendants onto its parent(s). Abandoning a revision removes its associated change ID.
Split changes in the source revision and move each change to the closest mutable ancestor where the corresponding lines were modified last. Changes that have zero or multiple matching regions in ancestral revisions won't be moved.
Find a bad revision by bisection.
Manage bookmarks in a `jj` repository. When using a Git backend, bookmarks correspond to Git branches.
Update the description and create a new change on top.
Manage config options. Some subcommands such as `edit`, `get`, `list`, `path`, `set`, `unset` have their own usage documentation.
Update the change description or other metadata.
Compare file contents between two revisions.
Touch up the content changes in a revision with a diff editor.
Create new changes with the same content as existing ones.
Set the specified revision as the working-copy revision. Note: It is generally recommended to instead use `jj new` and `jj squash`.
Show how a change has evolved over time, listing the previous commits it has pointed to.
Run Git-related commands for a `jj` repository.
Compare changes of two revisions.
Show revision history as a graph.
Create a new empty change.
Move the working-copy commit to a child revision.
Work with the operation log of a `jj` repository.
Parallelize revisions by making them siblings.
Move the working-copy commit to a parent revision.
Move revisions to different parent(s).
Resolve conflicted files with an external merge tool.
Restore files from another revision.
Apply the reverse of the given revision(s).
Show commit description and changes in a revision.
Split a revision in two.
Move changes from a revision into another revision.
Show high-level repository status. This includes the working copy commit and its parents, and a summary of the changes in the working copy and any existing conflicts in the working copy.
Manage tags in a `jj` repository. Some subcommands such as `delete`, `list`, `set` have their own usage documentation.
Undo the most recent recorded operation in a `jj` repository.
Options (4)
booleanUpdate description of the revisions specified by given revsets (e.g. `B::D`, `A..D`, `B|C|D`, etc.)
jj {{[desc|describe]}} {{[-m|--message]}} "{{message}}" {{[-r|--revision]}} {{revsets}}-m, --messagebooleanUpdate description of the revisions specified by given revsets (e.g. `B::D`, `A..D`, `B|C|D`, etc.)
jj {{[desc|describe]}} {{[-m|--message]}} "{{message}}" {{[-r|--revision]}} {{revsets}}-r, --revisionbooleanUpdate description of the revisions specified by given revsets (e.g. `B::D`, `A..D`, `B|C|D`, etc.)
jj {{[desc|describe]}} {{[-m|--message]}} "{{message}}" {{[-r|--revision]}} {{revsets}}--at-opbooleanExecute a jj subcommand at an operation
jj {{[--at-op|--at-operation]}} {{operation}} {{subcommand}}Examples (8)
Update description of the revisions specified by given revsets (e.g. `B::D`, `A..D`, `B|C|D`, etc.)
jj [desc|describe] [-m|--message] "message" [-r|--revision] revsetsCreate a new commit/revision on top of a given revision
jj new revsetCreate a new merge commit on top of multiple revisions
jj new revset1 revset2 ...Update the working copy to point to a revision
jj edit revsetUndo the previous command (which may itself have been `undo`)
Execute a jj subcommand without snapshotting the working copy
jj --ignore-working-copy subcommandExecute a jj subcommand at an operation
jj [--at-op|--at-operation] operation subcommand