Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Changed Files & Staging

The Changed Files section occupies the bottom half of the git panel’s left sidebar. It lists every file with uncommitted changes and provides controls for staging, unstaging, and discarding those changes. AZUREAL uses a UI-only staging model – staging state is tracked entirely within the interface, not read from or written to the git index until commit time.


File Status Indicators

Each file in the list is prefixed with a single-character status indicator, color-coded by change type:

CharMeaningColor
MModifiedYellow
AAdded (new tracked file)Green
DDeletedRed
RRenamedCyan
?UntrackedMagenta

These characters and colors match the conventions of git status --short, making the display immediately readable for anyone familiar with git.


Staged vs. Unstaged Appearance

The visual treatment of each file entry changes based on its staging state:

Staged Files

  • File path rendered in normal text with an underline
  • Status character uses its normal color (from the table above)
  • Diff stats (+N / -M) shown in normal intensity

Unstaged Files

  • File path rendered in strikethrough with DarkGray color
  • Status character dimmed
  • Diff stats dimmed

This visual distinction makes it possible to see at a glance which files will be included in the next commit and which will be left out.


Default Staging Behavior

All files default to staged when the changed files list loads. This matches the most common intent: you typically want to commit everything. The staging controls exist for the cases where you need to exclude specific files from a commit.

Because staging is UI-only, it has no effect on the actual git index. AZUREAL does not run git add or git reset when you toggle staging. The staging state is applied at commit time, when AZUREAL stages exactly the files marked as staged in the UI before running git commit.


Staging Controls

KeyContextAction
sChanged Files focusedToggle stage/unstage for the selected file
Shift+SChanged Files focusedStage or unstage all files at once

Pressing s on a staged file unstages it (strikethrough + dim). Pressing s again restages it (underline + normal). Shift+S is a bulk toggle: if any files are unstaged, it stages all; if all are staged, it unstages all.


Discarding Changes

KeyContextAction
xChanged Files focusedDiscard changes to the selected file

Pressing x prompts for inline confirmation directly in the file list entry. The prompt displays Discard <path>? [y/n] in the file’s row. Pressing y confirms the discard; pressing n or Esc cancels. Other keys are ignored while the confirmation is active.

The discard mechanism depends on the file type:

File TypeGit Command
Tracked (modified/deleted)git restore <path>
Untrackedgit clean -f <path>

Discarding is irreversible – there is no undo. The inline confirmation exists specifically to prevent accidental data loss.


Title Bar

The Changed Files section title summarizes the current state:

Files (12, 10✓, +84 / -31)

The components are:

ComponentMeaning
12Total number of changed files
10✓Number of files currently staged
+84 / -31Aggregate lines added and removed across all files

This gives you a quick summary without needing to scan every file in the list.