HydraGit Docs
v0.3.1

Merge · Rebase · Reset

The three core integration operations, reachable from the action rail and the branch / commit context menus. All three pause on conflict and surface the resolution banner.

Merge merge

Entry points

  • Action railMerge branch button.
  • Branch menuMerge '<branch>' into '<current>'.
  • Tag menuMerge '<tag>' into '<current>'.
  1. The confirm dialog first shows the conflict preview verdict.
  2. Go runs merge with { branch }.
  3. A clean merge updates the log; a conflict pauses and shows the conflict banner (Continue commits the merge).

Merge conflict preview merge.preview

Every merge confirm answers the question you actually have — "will this conflict?" — before anything runs. The dry run happens entirely in git's object database (git merge-tree --write-tree): the index, working tree and refs are untouched.

What happens next

  1. Picking a merge (action rail / branch menu / tag menu) sends merge.preview with { theirs } (ours defaults to HEAD).
  2. The confirm dialog appends the verdict: "merges cleanly — no conflicts", or "⚠ will conflict in N files" with the first 8 paths listed.
  3. You decide with full information; declining leaves the repo exactly as it was.
iNeeds git ≥ 2.38. On older git the preview silently degrades to a plain confirm — the merge itself is unaffected. Bad refs are validated up front (merge-tree's exit code can't distinguish "conflicts" from "not mergeable").

Rebase rebase

Entry points

  • Action railRebase button.
  • Branch menuRebase '<current>' onto '<branch>', or Checkout and Rebase onto '<current>'.
  1. Go runs rebase with { onto }.
  2. On conflict it pauses with Continue / Skip / Abort (see conflicts).

Reset reset

Entry points

  • Commit menuReset Current Branch to Here… — prompts for soft / mixed / hard.
  • Reflog timelinePer-row soft / mixed / hard buttons — see reflog.
  1. Go runs reset with { commit, mode }.
  2. A hard reset on a dirty tree auto-stashes tracked changes first, so nothing is lost; the toast says "changes auto-stashed".
ModeEffect
softMove HEAD; keep changes staged.
mixedMove HEAD; keep changes unstaged.
hardMove HEAD; discard changes (auto-stashed first).