Git Transient
- Key: G (Vanilla) (majutsu-git-transient)
Open the Git transient. Jujutsu can interact directly with Git remotes.
- Key: ? G (Evil) (majutsu-git-transient)
Open the Git transient. Jujutsu can interact directly with Git remotes.
Pushing
- Key: p (majutsu-git-push-transient)
Open the Push transient. You can push bookmarks, tags, revisions, or changes.
Transient arguments:
- Key: -a
Push all bookmarks and tags.
- Key: -t
Push tracked bookmarks and tags only.
- Key: -b
Push specific bookmark(s).
- Key: -T
Push specific tag(s) or tag patterns.
- Key: -c
Push a specific change.
- Key: -r
Push specific revision(s).
- Key: -o
Pass a Git push option; may be repeated.
- Key: -y
Show what would be pushed without pushing (
--dry-run).- Key: W
Save stable push options as defaults for this jj repository. Majutsu remembers sync policy such as
--remote,--all,--tracked,--deleted,--allow-empty-description, and--allow-private, but does not remember one-off targets like--bookmark,--tag,--change,--revision,--named,--option, or--dry-run.
Runs: jj git push
Fetching
- Key: f (majutsu-git-fetch-transient)
Open the Fetch transient to pull changes from a remote.
Transient arguments:
- Key: -R
Fetch from a specific remote; may be repeated.
- Key: -b
Fetch a specific branch; may be repeated.
- Key: -T
Fetch specific tag(s) or tag patterns; may be repeated.
- Key: -t
Fetch only tracked bookmarks and tags.
- Key: -A
Fetch from all remotes.
- Key: W
Save stable fetch options as defaults for this jj repository. Majutsu remembers
--remote,--tracked, and--all-remotes, but not one-off--branchor--tagselections.
Runs: jj git fetch
Gerrit Upload
- Key: u (majutsu-gerrit-upload-transient)
Open the Gerrit upload transient.
Transient arguments and selection controls:
- Key: -r
Upload specific revision(s).
- Key: r
Toggle the revision at point into or out of the upload selection. If no revision is selected, Majutsu leaves revision selection to
jj gerrit upload, which uploads@when it has a description and@-otherwise.- Key: -b
Target remote branch (
--remote-branch).- Key: -R
Gerrit remote (
--remote).- Key: -n
Preview without pushing (
--dry-run).- Key: W
Save stable upload options as defaults for this jj repository. Majutsu remembers
--remote,--remote-branch,--notify, and--ignore-attention-set, but not revisions, dry-run, metadata, state, or submit-related flags.
The remaining groups expose:
Review options include reviewers, CCs, labels, topic, hashtags, and a patch set message.
State/notification options include change edit, WIP/ready, private/remove-private, publishing comments, notification policy, and attention-set handling.
Advanced options expose submit, skip validation, merged uploads, deadlines, custom keyed values, and trace values.
Runs: jj gerrit upload
Reviewer/CC prompts use Majutsu's native Gerrit REST client and Gerrit's
/accounts/ suggestion endpoint. Topic completion uses the same REST client to
query open changes and aggregate existing topics. Label and hashtag prompts are
free-form minibuffer input.
REST-backed completion is enabled only when Majutsu can determine a reliable
Gerrit web/API origin. HTTP(S) remotes work directly. For SSH remotes such as
ssh://user@host:29418/project, configure Gerrit's web URL explicitly, for
example:
jj config set --repo gerrit.review-url http://host:8080
Majutsu intentionally does not guess a web/API URL from SSH port 29418.
This setting is not required for jj gerrit upload itself; upstream jj uses
gerrit.review-url only to generate Link: trailers instead of Change-Id:
trailers. Majutsu also uses it as a reliable web/API base for native Gerrit
completion.
Remotes
- Key: r (majutsu-git-remote-transient)
Open the Remote Management transient.
Transient actions:
- Key: l (majutsu-git-remote-list)
List remotes.
- Key: a (majutsu-git-remote-add-transient)
Add a new Git remote as
jj git remote add [OPTIONS] REMOTE URL. Majutsu prompts for a new remote name, rejects names that already exist, prompts for the URL/path positional, and exposes--fetch-tagsand--push-url.- Key: d (majutsu-git-remote-remove)
Remove an existing remote. In the remote list buffer, the remote at point is used as the default.
- Key: r (majutsu-git-remote-rename)
Rename a remote.
- Key: u (majutsu-git-remote-set-url-transient)
Set remote URLs. With no option, Majutsu prompts for the fetch URL/path positional; use
--fetchand/or--pushto set them explicitly. In the remote list buffer, the remote at point is used as the default.
Clone and Init
- Key: c (majutsu-git-clone-transient)
Clone a Git repository into a jj repo. Source may be a URL or path;
--branchcan be repeated.- Key: i (majutsu-git-init-transient)
Initialize a new Git-backed jj repository.
Export and Import
In a colocated Git-backed workspace, Jujutsu automatically imports from and exports to the underlying Git repository on each command. In other Git-backed layouts, use the commands below to synchronize the repositories explicitly:
- Key: e (majutsu-git-export)
Run
jj git export.- Key: m (majutsu-git-import)
Run
jj git import.- Key: o (majutsu-git-root)
Show the Git directory path (
jj git root).