Skip to content

Uncommitted & staging

Enter on the top row of the commit list opens the Uncommitted view. Three side-by-side panels:

PanelWhat
UnstagedModified / deleted files in the working tree.
StagedFiles in the index ready to be committed.
UntrackedNew files not yet tracked.

← / → switch between panels, ↑ / ↓ move the cursor within a panel.

Uncommitted view, Unstaged / Staged / Untracked panels with a ⚠ conflict badge

PressAction
aStage the focused file (or open the conflict editor for unmerged files).
Shift+AStage every unstaged + untracked file.
uUnstage the focused file (Staged panel).
Shift+UUnstage every staged file.
xDiscard an unstaged change (with confirmation).
Shift+XDiscard every unstaged + staged change.
vClean (delete) an untracked file.
  1. Enter on a file → opens the interactive diff for that file.
  2. Cursor moves between hunks with ↑ / ↓.
  3. Press Enter on a hunk to stage (or unstage) just that hunk exactly what git add -p does, but visual.
  4. The hunk migrates Unstaged → Staged live; refresh the side panels with r if you opened other tools in parallel.

Hunk-level staging, multi-hunk file, Enter on a hunk moves it from Unstaged to Staged

PressAction
wOpen the commit message editor, multi-line, supports Ctrl+H / Ctrl+W word-delete and Ctrl+Enter / Ctrl+S submit.
iStash the working tree (with optional message + include-untracked flag dialog).

Unmerged files (the result of a paused merge, rebase or cherry-pick) show a ⚠ N conflict(s) badge on the row. a on such a file opens the conflict editor, pick OURS / THEIRS / BOTH per hunk and save.