jj-vcs

📁 seckatie/katies-ai-skills 📅 Jan 21, 2026
27
总安装量
17
周安装量
#13926
全站排名
安装命令
npx skills add https://github.com/seckatie/katies-ai-skills --skill jj-vcs

Agent 安装分布

opencode 13
claude-code 12
gemini-cli 10
codex 10
antigravity 7
github-copilot 7

Skill 文档

Jujutsu (jj) Version Control System

Jujutsu is a next-generation version control system that uses Git repositories as storage while providing a fundamentally different and more powerful user experience. This skill includes the complete official documentation from the jj repository.

Quick Start: Read tutorial.md for hands-on introduction. See git-comparison.md for Git users migrating to jj.

What is Jujutsu?

Jujutsu (command: jj) is a VCS designed to be easy to use for both beginners and experienced users. Key innovations include:

  • Working-copy-as-a-commit: Changes are automatically recorded as commits and amended on each change
  • Operation log & undo: Every operation is recorded and can be undone (like version control for your version control!)
  • Automatic rebase: When you modify a commit, descendants are automatically rebased
  • First-class conflicts: Conflicts are tracked as objects and can be committed, resolved later, and propagated
  • No staging area: Simplified workflow without Git’s index/staging complexity
  • Git compatible: Works with existing Git repositories and forges like GitHub

Documentation Structure

Getting Started

  • README.md – Project overview, key features, and introduction
  • index.md – Documentation homepage with useful links
  • install-and-setup.md – Installation instructions for all platforms and initial configuration
  • tutorial.md – Comprehensive hands-on tutorial (assumes Git knowledge)
  • FAQ.md – Frequently asked questions and common issues
  • glossary.md – Definitions of jj-specific terminology

Core Concepts

  • working-copy.md – How the working copy works as a commit
  • operation-log.md – Understanding the operation log and undo functionality
  • conflicts.md – How jj handles merge conflicts as first-class objects
  • revsets.md – Powerful language for selecting revisions (like Mercurial revsets)
  • templates.md – Customizing output formatting with the template language
  • bookmarks.md – Working with bookmarks (similar to Git branches)
  • filesets.md – Language for selecting files

Configuration

  • config.md – Complete configuration reference and options
  • config.toml – Example configuration file
  • cli-reference.md – Command-line interface reference

Git Integration

  • git-compatibility.md – How jj works with Git repositories and Git features
  • git-comparison.md – Comparison of jj vs Git workflows and commands
  • git-command-table.md – Quick reference table mapping Git commands to jj equivalents
  • github.md – Working with GitHub repositories and pull requests
  • gerrit.md – Working with Gerrit code review system

Guides

  • guides/divergence.md – Understanding and resolving divergent changes
  • guides/multiple-remotes.md – Working with multiple remote repositories

Technical Documentation

  • technical/architecture.md – High-level architecture and design decisions
  • technical/concurrency.md – How jj handles concurrent operations safely
  • technical/conflicts.md – Technical details of conflict handling

Development and Contributing

  • contributing.md – How to contribute to jj development
  • code-of-conduct.md – Community code of conduct
  • core_tenets.md – Core principles guiding jj’s design
  • roadmap.md – Development roadmap and planned features
  • community_tools.md – Community-maintained tools and integrations
  • releasing.md – Release process documentation
  • design_docs.md – Index of design documents
  • design_doc_blueprint.md – Template for writing design docs

Comparisons and Context

  • sapling-comparison.md – Comparison with Meta’s Sapling VCS
  • related-work.md – Other related version control systems
  • testimonials.md – User testimonials and experiences

Platform-Specific

  • windows.md – Windows-specific considerations and setup

Project Information

  • CHANGELOG.md – Version history and release notes
  • GOVERNANCE.md – Project governance structure
  • SECURITY.md – Security policy and reporting

Common Usage Patterns

When the user asks to:

  • Get started with jj → Check tutorial.md and install-and-setup.md
  • Migrate from Git → Check git-comparison.md and git-command-table.md
  • Understand a concept → Check glossary.md and relevant concept docs (working-copy, conflicts, etc.)
  • Configure jj → Check config.md
  • Work with GitHub → Check github.md
  • Select revisions → Check revsets.md
  • Customize output → Check templates.md
  • Handle conflicts → Check conflicts.md
  • Troubleshoot issues → Check FAQ.md
  • Undo a mistake → Check operation-log.md
  • Understand architecture → Check technical/architecture.md

Quick Command Reference

Basic Operations

# Clone a Git repository
jj git clone <url>

# Check status
jj st  # or jj status

# Create a new change
jj new

# Edit a change description
jj describe

# Show change log
jj log

# Undo last operation
jj undo

# Show operation log
jj op log

Working with Changes

# Abandon a change
jj abandon

# Move changes between commits
jj squash  # move changes into parent
jj move    # move changes to another commit

# Rebase changes
jj rebase -r <revision> -d <destination>

# Resolve conflicts
jj resolve  # interactive conflict resolution

Git Integration

# Fetch from Git remote
jj git fetch

# Push to Git remote
jj git push

# Import Git branches as bookmarks
jj bookmark track <name>@<remote>

Selecting Revisions (Revsets)

# Common revset expressions
@              # working copy commit
@-             # parent of working copy
main@origin    # bookmark from remote
::@            # ancestors of working copy
@::            # descendants of working copy
~empty()       # non-empty changes

Key Concepts to Understand

Working Copy as Commit

  • The working copy is always a commit (shown as @)
  • Changes are automatically committed as you work
  • No explicit commit command needed (use jj describe to add a message)
  • Use jj new to start a new change

Revsets

  • Powerful language for selecting commits (similar to Mercurial)
  • Used in many commands: jj log -r, jj show, jj rebase, etc.
  • Supports boolean operations, functions, and composition
  • See revsets.md for complete reference

Operation Log

  • Every jj operation is recorded (commit, rebase, push, etc.)
  • Use jj op log to see operation history
  • Use jj undo to undo the last operation
  • Use jj op restore to restore to any previous state

Bookmarks vs Branches

  • jj uses “bookmarks” which are similar to Git branches but simpler
  • Changes can exist without bookmarks (anonymous branches)
  • Bookmarks are just pointers, not required for workflow
  • Git branches are imported as bookmarks

Conflicts

  • Conflicts are stored in commits, not just in working copy
  • You can commit conflicted changes and resolve later
  • Conflict resolution is propagated through rebases
  • Use jj resolve for interactive resolution

File Organization

  • README.md – Main project README with overview
  • docs/ – All documentation files
    • tutorial.md – Getting started tutorial
    • config.md – Configuration reference
    • revsets.md – Revset language reference
    • templates.md – Template language reference
    • git-*.md – Git integration documentation
    • guides/ – How-to guides for specific workflows
    • technical/ – Technical architecture documentation
    • design/ – Design documents for features

Tips

  • Start with the tutorial to understand the jj mental model
  • Use jj help <command> for detailed command help
  • The operation log is your safety net – don’t be afraid to experiment
  • Revsets are powerful – learn them to work efficiently
  • Conflicts are normal and can be handled gracefully
  • jj works best when you embrace its philosophy (working-copy-as-commit, auto-rebase)
  • Check the FAQ when you encounter unexpected behavior
  • Use templates to customize jj log output to your preferences

Important Notes

  • Jujutsu is experimental but actively developed and used daily by its developers
  • Git compatibility is stable – safe to use with existing Git workflows
  • Some features are experimental (check README warnings)
  • Breaking changes may occur but are documented in CHANGELOG
  • Community is active on Discord, GitHub Discussions, and IRC (#jujutsu on Libera Chat)

Resources