1. Introduction
    1. What is jj and why should I care?
    2. How to read this tutorial
  2. Hello, world!
    1. How to install jj
    2. Creating a repository with jj git init
    3. Viewing the current status with jj st
    4. Using jj describe to describe our commits in a human-friendly way
    5. Using jj new to create new changes
    6. Viewing the contents of your repository with jj log
    7. A recap and some thoughts
  3. Real-world workflows
    1. The Squash Workflow
    2. The Edit Workflow
  4. Branching, merging, and conflicts
    1. What anonymous branches are, and how to use them
    2. Figuring out where our changes are with revsets
    3. Merging anonymous branches
    4. Dealing with conflicts
  5. Sharing your code with others
    1. Using named branches in jj
    2. Working with remotes, aka, GitHub
    3. Responding to pull request feedback
    4. Updating trunk from upstream
    5. Using jj with Gerrit
  6. More advanced workflows
    1. Working on all of your branches simultaneously
    2. Stacked PRs
    3. Workspaces
    4. Colocated Repositories
  7. Fixing Problems
    1. Undoing mistakes
    2. Reverting changes
    3. The Operation Log
    4. The obslog
  8. Customizing your experience
    1. Configuring jj
    2. Customizing the output of various jj commands with templates