HydraGit Docs
v0.3.1

Conflict resolution

When a merge, rebase, cherry-pick or revert pauses on a conflict, the sidebar swaps its commit flow for a guidance banner — the operation name, the unmerged files, and a quick action per file.

Per-file actions

Each unmerged file gets three buttons:

ButtonCommandEffect
mergeopens merge editorOpens VS Code's 3-way merge editor for the file.
currentconflict.keepCurrentKeeps --ours (HEAD side).
incomingconflict.keepIncomingKeeps --theirs (the incoming side).
iCurrent / Incoming are correct for both merge and rebase — HEAD is always "current", so the labels never invert the way raw --ours/--theirs can during a rebase.

Continue / Abort

  • BannerContinue — gated until every file is resolved (conflict.continue).
  • BannerAbort — rolls the operation back (conflict.abort).
  1. Continue routes per operation: rebase → rebase --continue; merge / cherry-pick / revert → commit.
  2. Abort routes per operation: rebase → rebase --abort; others → --abort.
iFor an in-progress rebase specifically, the toolbar also offers Skip (rebase.skip); the paused state survives reloads via rebase.status.

rerere — reuse recorded resolutions rerere.enable

reuse recorded resolution: git remembers how you resolved each conflict and silently replays it when the identical conflict reappears — the second rebase of the same branch just works. Almost nobody knows this exists; HydraGit turns it on for you.

What happens next

  1. On activation (and on every repo change) the extension sends rerere.enable for each repo: sets rerere.enabled + rerere.autoupdate in the repo-local config — never the global one.
  2. From then on git records resolutions transparently; on a repeat conflict the file arrives already resolved and (via autoupdate) already staged.
iControlled by hydragit.rerere.enabled (default on). Turning the setting off stops enabling it for new repos; already-written repo config stays until changed.