Skip to content

avc merge

Three-way merge using the branch point, main HEAD, and branch HEAD. Clean changes auto-apply; conflicting files get standard <<< / === / >>> markers written to the working tree. See Concepts → Merges for the conceptual model.

Terminal window
avc merge feat-auth # perform the merge
avc merge feat-auth --preview # dry-run, show counts only
avc merge --abort # restore main from pre-merge snapshot
FlagDescription
--previewShow counts (clean / conflict / skipped) without modifying files
--abortRestore main from the auto-snapshot taken before the last merge
--jsonJSON output
{
"branch": "feat-auth",
"clean": 12,
"conflicts": 1,
"skipped": 0,
"pre_merge_snapshot": "snap-xyz789",
"files": [
{ "path": "src/auth.go", "decision": "clean" },
{ "path": "src/config.go", "decision": "conflict" }
],
"success": true
}

Before every merge, AVC takes an automatic snapshot of main labelled Pre-merge safety snapshot. If the merge goes wrong, undo it:

Terminal window
avc merge --abort

This restores main from that pre-merge snapshot. The agent branch is untouched.

Modified on main?Modified on branch?Decision
clean — branch version overwrites main
skip — main’s version stays
(no change, not in output)
conflict — conflict markers written to file

When conflicts > 0, AVC writes the files to your working tree with conflict markers. Edit them manually:

<<<<<<< main
the version from main
=======
the version from the branch
>>>>>>> feat-auth

Then take a new snapshot to mark the resolution as done.