Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Branching, merging, and conflicts

You may have noticed that we haven’t talked about branches at all yet. This is another significant difference between jj and git: jj prefers to use anonymous branches, rather than named ones. People sometimes call this a “branchless” workflow. In this chapter, we’ll learn about how to do branches in the way jj prefers, and in the next chapter, we’ll talk about named branches.

Here’s what we’re going to learn:

  • What anonymous branches are, and how to use them
  • Figuring out where our changes are with revsets
  • Merging anonymous branches
  • Dealing with conflicts
  • Resolving them with jj resolve