jj(1)

NAME
jj - Jujutsu (An experimental VCS)

SYNOPSIS
jj [-R|--repository] [--ignore-working-copy] [--ignore-immutable] [--at-operation] [--debug] [--color] [--quiet] [--no-pager] [--config-toml] [-h|--help] [-V|--version] [subcommands]

DESCRIPTION
Jujutsu (An experimental VCS)

To get started, see the tutorial at https://github.com/martinvonz/jj/blob/main/docs/tutorial.md.

OPTIONS

-R, --repository=REPOSITORY
    Path to repository to operate on By default, Jujutsu searches for the closest .jj/ directory in an ancestor of the current working directory.

--ignore-working-copy
    Don't snapshot the working copy, and don't update it By default, Jujutsu snapshots the working copy at the beginning of every command. The working copy is also updated at the end of the command, if the command modified the working-copy commit (`@`). If you want to avoid snapshotting the working copy and instead see a possibly stale working copy commit, you can use `--ignore-working-copy`. This may be useful e.g. in a command prompt, especially if you have another process that commits the working copy. Loading the repository at a specific operation with `--at-operation` implies `--ignore-working-copy`.

--ignore-immutable
    Don't prevent rewriting immutable commits By default, Jujutsu prevents rewriting commits in the configured set of immutable commits. This option disables that check and lets you rewrite any commit but the root commit. This option only affects the check. It does not affect the `immutable_heads()` revset or the `immutable` template keyword.

--at-operation=AT_OPERATION [default: @]
    Operation to load the repo at Operation to load the repo at. By default, Jujutsu loads the repo at the most recent operation. You can use `--at-op=<operation ID>` to see what the repo looked like at an earlier operation. For example `jj --at-op=<operation ID> st` will show you what `jj st` would have shown you when the given operation had just finished. Use `jj op log` to find the operation ID you want. Any unambiguous prefix of the operation ID is enough. When loading the repo at an earlier operation, the working copy will be ignored, as if `--ignore-working-copy` had been specified. It is possible to run mutating commands when loading the repo at an earlier operation. Doing that is equivalent to having run concurrent commands starting at the earlier operation. There's rarely a reason to do that, but it is possible.

--debug
    Enable debug logging

--color=WHEN
    When to colorize output (always, never, auto)

--quiet
    Silence non-primary command output For example, `jj files` will still list files, but it won't tell you if the working copy was snapshotted or if descendants were rebased. Warnings and errors will still be printed.

--no-pager
    Disable the pager

--config-toml=TOML
    Additional configuration options (can be repeated)

-h, --help
    Print help (see a summary with '-h')

-V, --version
    Print version

SUBCOMMANDS

jj-abandon(1)
    Abandon a revision

jj-backout(1)
    Apply the reverse of a revision on top of another revision

jj-branch(1)
    Manage branches

jj-cat(1)
    Print contents of files in a revision

jj-chmod(1)
    Sets or removes the executable bit for paths in the repo

jj-commit(1)
    Update the description and create a new change on top

jj-config(1)
    Manage config options

jj-describe(1)
    Update the change description or other metadata

jj-diff(1)
    Compare file contents between two revisions

jj-diffedit(1)
    Touch up the content changes in a revision with a diff editor

jj-duplicate(1)
    Create a new change with the same content as an existing one

jj-edit(1)
    Sets the specified revision as the working-copy revision

jj-files(1)
    List files in a revision

jj-git(1)
    Commands for working with the underlying Git repo

jj-init(1)
    Create a new repo in the given directory

jj-interdiff(1)
    Compare the changes of two commits

jj-log(1)
    Show revision history

jj-move(1)
    Move changes from one revision into another

jj-new(1)
    Create a new, empty change and (by default) edit it in the working copy

jj-next(1)
    Move the working-copy commit to the child revision

jj-obslog(1)
    Show how a change has evolved

jj-operation(1)
    Commands for working with the operation log

jj-parallelize(1)
    Parallelize revisions by making them siblings

jj-prev(1)
    Change the working copy revision relative to the parent revision

jj-rebase(1)
    Move revisions to different parent(s)

jj-resolve(1)
    Resolve a conflicted file with an external merge tool

jj-restore(1)
    Restore paths from another revision

jj-root(1)
    Show the current workspace root directory

jj-show(1)
    Show commit description and changes in a revision

jj-sparse(1)
    Manage which paths from the working-copy commit are present in the working copy

jj-split(1)
    Split a revision in two

jj-squash(1)
    Move changes from a revision into another revision

jj-status(1)
    Show high-level repo status

jj-tag(1)
    Manage tags

jj-util(1)
    Infrequently used commands such as for generating shell completions

jj-undo(1)
    Undo an operation (shortcut for `jj op undo`)

jj-unsquash(1)
    Move changes from a revision's parent into the revision

jj-untrack(1)
    Stop tracking specified paths in the working copy

jj-version(1)
    Display version information

jj-workspace(1)
    Commands for working with workspaces

jj-help(1)
    Print this message or the help of the given subcommand(s)

VERSION
v0.17.1