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:
| Section | Contents |
|---|---|
| Conflicts | Files with merge conflicts (shown during merge/rebase) |
| Untracked | New files not yet tracked by git |
| Modified | Changed files that haven’t been staged |
| Staged | Files 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
.gitmessagefile 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:
| Scope | Includes |
|---|---|
| Staged only | Only staged files |
| Tracked | Staged + modified tracked files |
| Include Untracked | Above + untracked files |
| Include All | Above + 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
| Shortcut | Action |
|---|---|
| Ctrl+Enter | Submit (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.