Git Graph
An interactive commit history visualization that renders your repository's branch and merge topology as a navigable graph.
The git graph panel reads the commit history of a Git repository and renders it as a visual graph. Each commit is a node, branches are colored lanes, and merge commits connect lanes together. The graph is built by the Rust backend using git log and parsed into a layout that the frontend renders as an SVG canvas. This gives you a clear picture of your project's history without switching to a separate Git GUI.
Commit Graph
The graph displays commits as nodes arranged along vertical lanes. Each branch gets its own lane with a distinct color. The layout follows these conventions:
- Commit nodes — Each commit is rendered as a circle on its branch lane. The most recent commits appear at the top, with older commits further down the graph.
- Branch lanes — Active branches are drawn as vertical colored lines. When a branch is created, a new lane forks off from the parent commit. When a branch is merged, the lane connects back to the target branch.
- Merge lines — Merge commits have two or more incoming edges, drawn as curved lines connecting the merged lanes. This makes it easy to see where feature branches were integrated.
- Branch labels — Branch names (e.g.,
main,feature/auth) and tag names are displayed as labels next to the commit they point to.
The graph is scrollable. Use the mouse wheel or trackpad to scroll through the full commit history. The graph loads commits in batches, so even repositories with thousands of commits remain responsive.
Commit Details
Click any commit node in the graph to open its detail view. The detail panel shows:
- Commit hash — The full SHA-1 hash of the commit, with a click-to-copy button.
- Author — The commit author's name and email, along with the authored date and time.
- Commit message — The full commit message, including the subject line and body. Long messages are displayed in a scrollable area.
- Changed files — A list of files affected by the commit, with additions, modifications, and deletions indicated by color-coded icons.
- Diff view — Select a file from the changed files list to see a unified diff of the changes introduced by that commit. Additions are highlighted in green and deletions in red.
Right-click a commit node to copy the commit hash, the commit message subject, or the full git show output to your clipboard.
Dirty Status
The git graph panel integrates with the Rift Panel tool strip to show real-time repository status. When the working tree has uncommitted changes, the git icon on the tool strip displays a dirty indicator — a small colored dot that signals outstanding modifications.
- Yellow dot — The working tree has modified or untracked files that have not been staged.
- Green dot — Changes are staged and ready to commit.
- No dot — The working tree is clean and matches the latest commit.
The dirty status updates automatically whenever the file system watcher detects changes in the repository. You do not need to manually refresh the panel.
The git graph is a read-only visualization. You cannot create commits, switch branches, or perform any write operations from this panel. Use a terminal panel to run Git commands that modify your repository.