Skip to content
Vertical Tabs

Git Diff Viewer

View and navigate your git changes with the built-in diff viewer.

Vertical Tabs includes a built-in diff viewer for reviewing changes directly in the terminal.

Press ⇧ Shift + ⌘ Cmd + G to toggle the git diff pane. It slides in alongside the terminal with a side-by-side view of the working copy and its changes.

Press the shortcut again to close it.

The file list supports two layouts. Switch between them using the toggle at the top of the pane.

Files are split into two groups: Changes (tracked files that are modified, added, or deleted) and Unversioned Files (untracked). Each file row shows the filename followed by a status letter (M, A, D, or U) and includes a checkbox for selecting which files to include in a commit.

This is the default view, used when preparing a commit.

Files are displayed in a directory hierarchy that matches the project structure. Folders expand and collapse to focus on specific parts of the codebase.

Toggle sideview mode to display all changes in a single scrollable view. Each file gets a collapsible header for expanding or collapsing individual diffs.

Sideview provides a quick overview of everything that changed across the project.

Large generated or accidentally unignored files are protected by preview limits. They still appear in the file list and can be staged, opened, or committed, but sideview may omit their inline preview and automatic line counts may show 0 rather than reading the whole file into memory.

Each file in the list has a color-coded status badge:

Badge Color Meaning
M Peach Modified
A Green Added
D Red Deleted
U Grey Untracked

Use the search box at the top of the file list to filter by file name. Start typing and the list narrows instantly.

Right-click any file and select Open in Window to open the diff in its own full-size window.

A separate window provides more space for large files or for comparing changes side by side with the terminal.

Right-click any file in the diff file list to see staging options:

  • Stage File adds the file to the git staging area. Appears for any unstaged or untracked file.
  • Unstage File removes the file from the staging area. Appears for staged files.

When multiple files are checked, the batch context menu shows Stage N Files and Unstage N Files for quick bulk operations.

The name of the current git branch is shown in the terminal top bar alongside insertion and deletion counts. When multiple worktrees are configured, the branch also appears in the diff pane header as part of the worktree dropdown.

If you use git worktrees, a dropdown in the diff header lets you switch between them. Selecting a different worktree shows its changes without altering your terminal’s working directory.

Commit message and file selections are remembered per worktree. Switching between worktrees preserves state.

If the current workspace is not a git repository, the diff pane shows an Initialize Repository button. Click it to run git init.

The diff viewer watches for file changes on disk and updates automatically. Save a file in an editor and the diff refreshes on its own.

Refreshes are serialized, so a burst of file changes queues one follow-up refresh instead of starting overlapping git scans.