Git Blame

Trace the origin of every line in a file. grüt's blame view shows commit hash, author, date, and content side-by-side, color-coded by author for instant visual identification.

grüt
Blame view showing line-by-line authorship with commit hash, author, and date
Blame annotations overlaid on the file preview

Opening Blame

Open blame for any file in two ways:

  • From the file tree — highlight a file and press B to open its blame view directly.
  • From the file preview — while previewing a file's contents, press B to switch to blame view for the same file.

Keybindings

Blame View

KeyAction
BOpen blame view for the current file
EnterView the full commit for the selected blame entry
j / ↓Move to the next blame entry
k / ↑Move to the previous blame entry
EscExit blame view and return to file preview

Blame Layout

Each line in the blame view is annotated with four columns:

  • Commit hash — the short SHA of the commit that last modified this line
  • Author — who made the change
  • Date — when the change was committed
  • Line content — the actual source code
a1b2c3d4  Alice   2024-11-15  func main() {
a1b2c3d4  Alice   2024-11-15      app := grut.New()
f5e6d7c8  Bob     2025-01-03      app.EnableWorktrees()
a1b2c3d4  Alice   2024-11-15      app.Run()
9a8b7c6d  Carol   2025-02-20  }

Color Coding

grüt assigns a unique color to each author, making it easy to see at a glance which parts of a file were written by whom. Consecutive lines from the same commit share the same background tint, creating visual "blocks" that highlight logical changes.

This is especially useful for understanding ownership in files with many contributors — you can quickly spot who is responsible for a particular section without reading each annotation.

Navigating Blame Entries

Use j / k to move between blame entries. When you land on a line, the status bar shows the full commit message for that line's commit.

Press Enter on any blame entry to jump to the full commit view, showing the complete diff, commit message, author details, and parent commits. Press Esc to return to the blame view.

Use Cases

  • Bug investigation — find out when a problematic line was introduced and by whom, then inspect the full commit for context.
  • Code review context — understand the history behind a piece of code before suggesting changes.
  • Ownership mapping — identify the primary author of a module to know who to consult for changes.