Skip to content

Changes

The Changes tab is a singleton tab that provides a staging interface for reviewing and committing your work. It uses a master-detail layout — in split mode, the file list and diff viewer appear side by side within the tab. In list mode, clicking a file opens a separate Diff tab in the adjacent pane.

File List

Files are organized into collapsible sections:

SectionContents
ConflictsFiles with merge conflicts (shown during merge/rebase)
UntrackedNew files not yet tracked by git
ModifiedChanged files that haven’t been staged
StagedFiles ready to be committed

Each file shows a status icon (A/M/D/R/C/U), the file path, and a stage/unstage toggle button. Files tracked by Git LFS display an LFS badge.

Staging Files

  • Click the +/− button on a file to stage or unstage it
  • Use section-level buttons to Stage All, Unstage All, or Discard All changes
  • Partially staged files appear in both the Modified and Staged sections

Diff Viewer

Click any file to view its diff in the right panel. The diff viewer supports:

  • Text files — syntax-highlighted side-by-side or unified diff with hunk-level staging
  • Binary files — image, audio, and video preview for each version
  • Conflict files — three-way diff (Ours/Base/Theirs) with resolution buttons

See the Diff Viewer page for full details on diff navigation and staging controls.

Operation Modes

Three mode buttons at the bottom of the file list switch between operations:

Commit Mode

  • Message input (72-character guide) and optional extended description
  • Commit button — creates a commit from staged changes
  • Advanced — checkbox to skip pre-commit hooks
  • Commit templates are loaded automatically if a .gitmessage file exists

Amend Mode

  • Pre-fills the message from the last commit
  • Allows staging additional changes or unstaging files from the previous commit
  • Shows the last commit hash (clickable — opens the Commit tab)

Stash Mode

  • Optional stash message
  • Scope selector controlling what gets stashed:
ScopeIncludes
Staged onlyOnly staged files
TrackedStaged + modified tracked files
Include UntrackedAbove + untracked files
Include AllAbove + ignored files
  • Keep Index checkbox — leaves staged changes in place after stashing
  • Summary text showing what will be stashed
  • Link to the Stashes tab with a count badge

Merge Conflict Resolution

During a merge or rebase, conflict files appear at the top of the file list. Click a conflict file to see the three-way diff with:

  • Accept Ours / Accept Theirs buttons on the diff panels
  • Stage As-Is — mark as resolved without choosing a side
  • Merge Tool — launch your configured external merge tool
  • Edit — open the file in the text editor for manual resolution

LFS Integration

When Git LFS files are detected, a Pull LFS button appears in the sidebar header with a progress bar for downloading large files.

Keyboard Shortcuts

ShortcutAction
Ctrl+EnterSubmit (Commit, Amend, or Stash depending on mode)

Context Menu

Right-click a file for options including stage/unstage, discard changes, open diff, open file, show in file browser, and copy file path.