Key concepts

The change tree

VisualJJ shows your repository as a tree of changes, not a list of branches. Each change has a parent, and you can see exactly where your work sits relative to main.

Click any change to see its contents. Double-click to edit it.

Describing changes

When you describe a change, you're giving it a title that explains what it does. This makes the change easier to review and easier to find later.

Changes without descriptions show "Describe" button.

Editing history

You can reshape your changes at any time:

  • Split a large change into smaller pieces
  • Squash a fix into the change it belongs with
  • Rebase to move changes onto a different parent

Conflicts

When two changes touch the same code, you get a conflict. VisualJJ marks conflicted changes in the tree and lets you open VS Code's merge editor to resolve them.

Conflicts prevent shipping until resolved, but they don't stop you from working on other changes.

Landing changes

Merge Pull Request lands your change through GitHub's PR flow—useful when you need reviews or CI checks.

Ship Now pushes directly to main—useful for personal repos or teams that don't require PRs.