Skip to main content

Conflicts

When a merge, rebase, cherry-pick, revert or patch cannot be applied cleanly, Katari replaces the window with the conflict screen. That is deliberate: a repository mid-conflict has exactly one thing that needs doing, and a window offering everything else invites you to do something that will not work.

One disagreement at a time​

The default view is by disagreement rather than whole-file. A conflicted file usually has several independent disagreements in it, and most of them are not the hard one — deciding them individually is faster than reading the whole file with markers in it.

Each disagreement offers:

<branch>Take that side's version.
BothKeep both, in that order.
Both, other wayKeep both, reversed.

The sides are named after the branches they came from, not "ours" and "theirs" — and the names are correct for the operation you are actually in. That matters more than it sounds: during a rebase "ours" is the branch you are moving onto, which is the opposite of what most people assume, and picking the wrong side there silently discards your own work.

Switch to Whole file for the cases where the disagreements interact and you need to see them together.

It will not let you resolve half a file​

The Resolve this file button stays disabled while anything is undecided, and the footer counts what is left: "3 of 3 still to decide".

The failure this prevents is the expensive one — git will happily let you commit a file with conflict markers still in it, and the result compiles about half the time.

Finishing or abandoning​

Once every file is resolved:

  • A merge offers Commit the merge.
  • A patch series offers Continue to carry on with the rest of the series, and Skip this patch to drop the one that will not apply.
  • Anything else — rebase, cherry-pick, revert — is continued from your terminal for now.

Abort puts the repository back where it was, whatever the operation.

Skip sits beside Abort rather than next to the primary action on purpose: it discards a patch somebody sent you, and that should not be what a mis-click reaches.