HydraGit Docs
v0.3.1

Branches

The full branch lifecycle from the tree on the left of the main panel: list, switch, create, rename (locally, on the remote, or a whole folder at once), delete, and find which branches contain a commit.

Branch tree & list branches

Local and remote-tracking branches with folder-style grouping for slashed/branch/names.

Entry points

  • Branch paneThe tree in the main panel's left region (BranchPane), with LOCAL and REMOTE sections.
  • Branch pickerThe toolbar branch pill / the rail Checkout button open a searchable list.

What it shows per branch

  • Hydra-head icon on every branch, with a gradient fill on the checked-out branch (the current-branch marker).
  • Default-branch shield — resolved from origin/HEAD (real data, never guessed by name; absent when there's no remote). fetch refreshes origin/HEAD so a remote default change heals itself.
  • Ahead/behind counts↑2 ↓1 (amber ahead / cyan behind); in-sync branches show nothing.
  • Gone / orphan detection for branches whose upstream was deleted.
  • Folder nodes for shared prefixes; expand/collapse to navigate.
  • Type-to-filter from the pane header filters every section at once.

Checkout / switch checkout

Entry points

  • Action railCheckout button → searchable branch picker (the IntelliJ "Branches" popup equivalent).
  • ToolbarBranch pill → filter list → click a branch.
  • Branch context menuRight-click a branch → Switch to Branch (a plain checkout, no pull; disabled for the current branch).
  • Commit menuCheckout Revision checks out a commit directly (detached HEAD).

What happens next

  1. Go runs checkout with the chosen branch (or hash).
  2. On success the panel reloads — the new branch becomes current, the log re-scopes, and the status badge updates.
  3. Checking out a commit reports detached HEAD, which raises the rescue banner.

Create branch branch.create

Entry points

  • Action railNew branch button.
  • Branch context menuNew Branch from '<branch>'… — branches off that branch.
  • Commit context menuNew Branch… — branches off the selected commit (passes from: hash).

What happens next

  1. You're prompted for a branch name.
  2. Go runs branch.create with { name, from? } — optionally from a ref or commit hash.
  3. The new branch appears in the tree and the panel reloads.

Rename — local · remote · folder

Entry points

  • Branch context menuRename… on a branch.
  • Folder context menuRight-click a branch folder → rename the whole prefix.

What happens next

  1. Local rename branch.rename — renames the branch with { from, to }.
  2. Remote propagation branch.rename.remote — if the branch had an upstream, HydraGit offers to push the new name with tracking and delete the old remote ref.
  3. Folder rename branch.rename.folder — renames every local branch under the prefix at once, preserving each suffix (e.g. feature/*feat/*).
iRemote rename/delete pushes run under a 30-second timeout so a credential prompt with no terminal can't freeze the panel.

Delete — local · remote

Entry points

  • Action railDelete branch button (red).
  • Branch context menuDelete (red; disabled for the current branch).

What happens next

  1. Local delete branch.delete with { name, force }.
  2. Remote delete branch.delete.remote — deletes the branch on the remote via push <remote> --delete and prunes the local tracking ref.

Branches containing a commit branch.containing

Answers "which branches include this commit?" for the selected commit.

  1. Triggered from commit context where relevant; Go runs branch.containing with { commit }.
  2. Returns the set of branches whose history contains that commit.