Skip to content

// Master jj (Jujutsu) — the Git-compatible VCS Google's using. Operations explained as you go.

Jujutsu VCS Pro

skill --stat
  • last update

    Apr 20, 2026

  • license

    MITv1.0.0

  • format

    SKILL.md

quickstart.sh
3 steps
  1. Install

    // Downloads SKILL.md into ~/.claude/skills/jujutsu-vcs-pro/

    $ curl -fsSL --create-dirs -o ~/.claude/skills/jujutsu-vcs-pro/SKILL.md https://claudeskil.com/skills/jujutsu-vcs-pro/SKILL.md
  2. Invoke

    // Inside Claude Code, type the skill name as a slash command

    > /jujutsu-vcs-pro wire up a GitHub Actions deploy
  3. Or just ask

    // Claude loads the skill by itself when a request matches its description

    > wire up a GitHub Actions deploy
jujutsu-vcs-pro/
references
SKILL.md
readonly
name:
Jujutsu VCS Pro
slug:
jujutsu-vcs-pro
version:
v1.0.0
license:
MIT
author:
@chiragthummar16
categories:
tags:
#jujutsu#jj#vcs#git#version-control
description:

Master jj (Jujutsu) — the Git-compatible VCS Google's using. Operations explained as you go.

README.md

jujutsu-vcs-pro/README.md
9 sections

Jujutsu VCS Pro

Jujutsu (jj) is a Git-compatible version control system that replaces the staging area with an always-editable working-copy commit and treats conflicts as first-class, recorded state. This skill is for developers who already know Git and want to adopt jj on existing Git repos without unlearning their instincts — it explains each command in Git terms as it runs them, and walks you through rebases, splits, and conflict resolution interactively.

When to use it

  • You've cloned jj onto a Git repo (jj git init --colocate) and aren't sure how jj maps onto your git status / git rebase muscle memory.
  • You need to reorganize messy history — splitting a fat commit, reordering, or squashing — and want the operation translated and verified before it runs.
  • A rebase produced conflicts and you want them resolved the jj way (edit files, then jj resolve) instead of an interactive Git mid-rebase state.
  • You broke something and need jj op log / jj op restore (the operation log) to undo an entire prior action atomically.

How it works

The skill drives the real jj CLI. Core commands it uses and narrates:

  • Status & history: jj st, jj log, jj log -r 'mine() & ::@' with revset expressions.
  • Editing history: jj new, jj edit <rev>, jj describe, jj squash (the git commit --amend / staging replacement), jj split.
  • Moving commits: jj rebase -s <source> -d <dest>, jj rebase -r for single revisions.
  • Branches/bookmarks: jj bookmark create/set/move (jj calls Git branches "bookmarks") and jj git push / jj git fetch.
  • Recovery: jj op log, jj op restore <op-id>, jj undo.
  • Conflicts: edits the marked files, then jj resolve (or jj resolve --tool).

Example

code
curl -fsSL --create-dirs -o ~/.claude/skills/jujutsu-vcs-pro/SKILL.md https://claudeskil.com/skills/jujutsu-vcs-pro/SKILL.md

# Colocate jj alongside an existing Git repo
jj git init --colocate

# Split the last commit into two
jj split -r @-

# Move a feature onto the latest main and push it
jj rebase -s feature -d main@origin
jj bookmark set feature -r @
jj git push --bookmark feature

Tips & gotchas

  • There is no staging area. @ is your working copy as a real commit; jj squash moves changes from @ into its parent, which is how you "amend."
  • Bookmarks don't move automatically when you commit (unlike Git branches). Run jj bookmark set before pushing or you'll push stale refs.
  • Conflicts never block you — jj commits them with markers and lets descendants build on top. Resolve when convenient, not mid-operation.
  • jj undo and jj op restore reverse any prior operation, including a bad jj git fetch. The op log is your safety net.

FAQ

Do I have to abandon Git? No. With --colocate, .git stays usable; teammates see normal Git.

What replaces git add -p? jj split and jj squash -i open a diff editor to pick hunks.

How do I detach a change to fix it? jj edit <rev> makes any commit the working copy directly.

$ cat reviews/

Reviews

// No reviews yet. Be the first.
Loading review form…

$ ls related/

explore all →