Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Histrova - Git Graph, History & UndoNew to Visual Studio Code? Get it now.
Histrova - Git Graph, History & Undo

Histrova - Git Graph, History & Undo

Histrova

|
1 install
| (0) | Free
Edit your Git history without fear. A fast Git graph with one-click history editing (reword, squash, rebase), undo for everything, and a side-by-side conflict solver.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Histrova

A fast Git graph for VS Code, with one-click history editing, undo for everything, a three-way conflict solver, and fetch / pull / push.

Edit a commit message, then undo it

Features

A graph you can read

  • Every branch, tag and remote branch on one graph, with clear lane colors in light, dark and high-contrast themes.
  • Smooth with big histories: 100,000 commits scroll at 60 fps; the first rows appear in a fraction of a second.
  • Hover a commit for its full message and details; hover a branch to see how far it is from its remote.
  • Click a commit to see its files and diffs. ⌘/Ctrl-click a second commit to compare the two.
  • Search by message, author, hash, branch or tag (⌘F / Ctrl+F).
  • Filter by author: pick one or more people under Authors in the toolbar (or right-click a commit › Show Only Commits by …) to see just their commits, as a timeline.

The graph and commit details

Branches, remotes and tags at a glance

A sidebar left of the graph lists your branches (in folders, with ahead / behind counts), remotes and their branches, tags and stashes (click one to see its changes, then apply, pop or drop it). Filter it, click to jump to a branch in the graph, double-click to check it out, right-click to push, pull, set the upstream, compare, or manage remotes (add, edit URL, rename, remove, fetch, prune) and remote tags.

Edit history in one click

Right-click any commit or branch:

  • Edit message and edit author of any commit on your branch, not just the last one. Instant, no rebase.
  • Squash two commits (or a commit into its parent), drop a commit, reset, undo last commit.
  • Interactive rebase without a text editor: drag commits into a new order, and pick, reword, squash, fixup or drop each one.
  • Cherry-pick, revert, merge, rebase, checkout, create and delete branches and tags.
  • Warns you before you rewrite commits that are already pushed.

Right-click a commit

Squash two commits

Look back

  • File history: right-click a file (Explorer, editor tab or Histrova) → Show File History: the graph shows just the commits that changed it, following renames.
  • Blame: who last changed each line, and when; click a commit to see it in the graph.
  • Recover lost commits: commits you reset away, dropped or squashed are still in the reflog; Histrova lists them and brings one back as a branch.

Submodules and worktrees

  • Submodules: the sidebar shows each one and whether it's cloned, on the recorded commit, or changed. Initialize or update them, or double-click one to see its own history in the graph.
  • Worktrees: work on two branches at once in two folders. Right-click a branch → Check Out in New Worktree…, then open it in a new window or in the graph. Remove, lock or prune them from the sidebar.

Undo anything

Every action shows an Undo button, and the Undo History keeps the last 20. Undo restores branches, tags and even uncommitted work thrown away by a hard reset or discard. If something changed since, Histrova tells you why it can't undo instead of guessing.

Undo history

Resolve conflicts side by side

A three-way conflict solver in its own tab: your branch on the left, the incoming branch on the right, the result in the middle, and the common base when you want it.

  • Arrows next to every change take a side in one click. Both (either order), Edit by hand, Reset.
  • Changes made on only one side are taken for you; real conflicts are highlighted.
  • Conflict navigator: previous / next, jump list, count of what's left. Take all left / all right.
  • Clear names during a rebase ("the branch you're rebasing onto" vs. "your commit"), and choices for binary files and files deleted on one side.
  • Keyboard: Alt+↑/↓ to move, Alt+←/→ to take a side, ⌘/Ctrl+S to save.

Resolving two conflicts

Fetch, pull and push

  • Ahead / behind counts in the toolbar. Pull by merge or rebase (following your pull.rebase setting).
  • First push asks where to and links the branch for next time.
  • When your branch and its remote branch have diverged, Histrova tells "you edited pushed commits" apart from "someone else pushed", lists the commits a force push would remove, and only force pushes with a lease (if anyone pushed since your last fetch, nothing is overwritten).
  • Usernames, passwords, tokens and SSH passphrases are asked for inside VS Code. Errors say what's wrong in plain words.

Force push after editing pushed commits

Stage and commit

The working tree sits at the top of the graph: stage or unstage files, view diffs, commit or amend, discard changes (new files go to the Trash). To commit only part of a file, open Stage Lines… on it: pick single lines (Shift-click for a range) or whole changes to stage, unstage or discard.

Getting started

Open a folder that contains a Git repository, then click Histrova in the status bar, the Histrova button in the Source Control view, or run Histrova: Show Git Graph from the Command Palette.

Requirements: Git 2.30 or newer, VS Code 1.95 or newer.

Settings

Click the settings button (at the right of Histrova's toolbar) for the View menu: the sidebar, where commit details open, the columns, dates, graph lines, and what the graph shows. Changes apply at once. All Settings… there (or Histrova: Open Settings) opens every setting:

Setting What it does Default
histrova.sidebar Branches sidebar: open when the graph is wide (Automatic), always, or never Automatic
histrova.details.position Commit details beside the commits when there's room (Automatic), below, or beside Automatic
histrova.graph.position Graph column before or after the commit message left
histrova.columns.date / .author / .commit Show the Date, Author and Commit columns On
histrova.dateFormat Relative ("3 hours ago"), date and time, date only, or ISO (2026-09-28 14:05) Relative
histrova.dateType Show the author date or the commit date Author date
histrova.graph.style Rounded or angular lines between branches Rounded
histrova.graph.colors Your own branch-line colors (up to 10 hex colors) Histrova palette
histrova.openOnStartup Open the graph when a window with a Git repository opens Off
histrova.openIn Open the graph in the current editor group or beside it Current group
histrova.defaultView What a newly opened graph shows: the last choice, all branches, or the current one Last used
histrova.show.tags Show tags On
histrova.show.remoteBranches Show remote branches On
histrova.show.uncommittedChanges Show a row for uncommitted changes On
histrova.commitOrder By date, or each branch's commits kept together By date
histrova.firstParent Follow only the first parent of merges Off
histrova.dimMergeCommits Show merge commits faded Off
histrova.useMailmap Use .mailmap to show each person under one name and email On
histrova.warnBeforeRewritingPushedCommits Warn when a change rewrites commits that are already pushed On
histrova.undoHistorySize Actions kept in the Undo History, per repository (5 to 100) 20
histrova.autoFetch Fetch in the background every 5, 10 or 30 minutes (never asks to sign in) Off
histrova.gitPath Path to Git, if it isn't found automatically Automatic
histrova.showStatusBarItem Show the Histrova button in the status bar On
histrova.telemetry.enabled Share anonymous usage counts (see Privacy) Off

Dialogs remember your last choice (checking out a new branch, the merge and reset options, stashing new files). Every graph action (Refresh, Fetch, Pull, Push, Commit, Stash, New Branch, Find, Show or Hide Branches, Reflog) is a command you can give a keyboard shortcut: open Keyboard Shortcuts and search for "Histrova".

Privacy

Histrova works locally and sends nothing anywhere by default. If you turn on histrova.telemetry.enabled (and VS Code's own telemetry is on), Histrova records only which features you use and whether they worked: never file names, paths, commit messages, branch names, remote URLs or anything you type. Every event is shown in the Histrova Telemetry output channel, exactly as recorded.

Feedback and help

  • Bugs and feature requests: GitHub issues. Questions and ideas: Discussions.
  • Quick, anonymous feedback: Histrova: Send Feedback from the Command Palette, or the feedback form.
  • Guide and release notes: github.com/Histrova/histrova.

The GitHub repository is Histrova's home for issues, the guide and release notes.

License

Copyright © 2026 Histrova. All rights reserved. See LICENSE.md.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft