Skip to content

Operation Atoms

Merge

AtomWhat it does
startMerge(branch, { allowConflict?, noFastForward?, message?, date? })Merge — conflicts leave the repo mid-merge by default.
abortMerge()git merge --abort.

Cherry-pick

AtomWhat it does
cherryPick(ref, { allowConflict?, date? })Cherry-pick — conflicts leave mid-cherry-pick by default.
abortCherryPick()git cherry-pick --abort.

Revert

AtomWhat it does
revert(ref, { mainline?, allowConflict?, date? })Revert a commit. Use mainline for merge commits.

Rebase

AtomWhat it does
startRebase(onto, { allowConflict? })Rebase onto a ref — conflicts leave mid-rebase by default.
abortRebase()git rebase --abort.
continueRebase()git rebase --continue (after resolving conflicts).

Bisect

AtomWhat it does
startBisect({ bad, good })Begin a bisect session.
bisectStep(verdict)'good' / 'bad' / 'skip'.
resetBisect()git bisect reset.

Reset

AtomWhat it does
resetTo({ target, mode? })git reset --soft/mixed/hard <target>.

The allowConflict pattern

All conflict-producing atoms (startMerge, cherryPick, revert, startRebase) default to allowConflict: true. This means conflicts leave the repo in the mid-operation state — exactly what scenario tests want. Set allowConflict: false to rethrow on conflicts.