Skip to content
Back to skills

Advanced Jj

ASecurity

Reference for deeper Jujutsu (jj) topics beyond the everyday describe/advance workflow. Load when working with conflicts, the operation log, bookmarks, revsets, fork/PR workflows, colocated Git repos, multi-remote setups, divergent changes, or jj config. Also the place to look up fileset glob syntax, non-interactive `jj split`, and bookmark advancement.

  • 10 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 1, 2026
toolsbashgit

Works with

  • cli

Security analysis

A100/100

Pro scans all 14 files and shows the line behind each finding

Scanned October 1, 2026

npx -y skills add martinemde/dotfiles --skill advanced-jj --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Advanced Jj?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Advanced Jj
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/martinemde-advanced-jj/badge)](https://www.skillsdirectory.com/skills/martinemde-advanced-jj)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: advanced-jj
description: >-
  Reference for deeper Jujutsu (jj) topics beyond the everyday
  describe/advance workflow. Load when working with conflicts, the
  operation log, bookmarks, revsets, fork/PR workflows, colocated Git
  repos, multi-remote setups, divergent changes, or jj config. Also the
  place to look up fileset glob syntax, non-interactive `jj split`, and
  bookmark advancement.
---

# Advanced Jujutsu (jj)

The everyday flow and safety rules live in CLAUDE.md; describing and
splitting changes lives in the `commit` skill. This is the deeper
reference for what neither of those covers.

jj's CLI moves faster than these notes, so verify against `jj --help` and
`jj <command> --help` before acting. Treat this skill as orientation, not
ground truth.

## Mental Model

- `@` — the working copy (current change)
- `@-` — parent of `@`
- Changes auto-amend: editing files updates `@` in place, no staging
- `jj squash` folds `@` into its parent (`--into <rev>` targets any ancestor)

## Diffs with Filesets

`jj show` does not accept path arguments — use `jj diff`. Filesets
support glob and set operations:

```bash
jj diff -r @-                                     # full parent diff
jj diff -r @- path/to/file                        # one file
jj diff -- 'glob:"bin/*" ~ glob:"bin/,special"'   # glob minus exclusion
```

## Non-interactive Split

`jj split -i` needs an editor. For scripted splits, use `--tool true`
— the `true` command exits 0, accepting the file list as given:

```bash
jj split --tool true -m "Extract feature" -- \
  'glob:"path/to/file1"' 'glob:"path/to/file2"'
```

Remaining changes stay in a follow-up working copy change.

## Fixing an Earlier Change

Don't rewrite an earlier change in place. Build the fix on top of it, then
fold it in:

```bash
jj new <target>                              # new change on top of the target
# make the fix
jj squash --into <target> --tool true        # fold it back, no diff editor
```

## Advancing Bookmarks

After finalizing work, move the nearest ancestor bookmark forward:

```bash
jj bookmark advance                  # closest bookmark(s) → @
```

See `jj bookmark advance --help` for `--to` and other targeting.

## Reference Files

Load from `references/` as needed:

- **`git-to-jj-commands.md`** — Git → jj command translation table
- **`git-comparison.md`** — Conceptual differences from Git
- **`git-compatibility.md`** — Colocated repos, Git interop
- **`working-copy.md`** — How automatic commits work
- **`bookmarks.md`** — Managing bookmarks (branches)
- **`revsets.md`** — Query syntax (`@`, `@-`, `main..@`, etc.)
- **`conflicts.md`** — Conflict resolution
- **`operation-log.md`** — `jj op log`, undo, restore
- **`divergence.md`** — Handling divergent changes
- **`github.md`** — Fork workflows and PRs
- **`multiple-remotes.md`** — Multi-remote setups
- **`config.md`** — Configuration options
- **`tutorial.md`** — Step-by-step introduction (for humans)

Files in this skill

  • SKILL.md2.9 KB
  • references/bookmarks.md11.2 KB
  • references/config.md63.1 KB
  • references/conflicts.md7.9 KB
  • references/divergence.md3.5 KB
  • references/git-comparison.md5.6 KB
  • references/git-compatibility.md11.5 KB
  • references/git-to-jj-commands.md10.3 KB
  • references/github.md9.4 KB
  • references/multiple-remotes.md3.8 KB
  • references/operation-log.md3.3 KB
  • references/revsets.md24 KB
  • references/tutorial.md23.4 KB
  • references/working-copy.md5.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…