Commit Mode
Commit Mode is a dedicated layout for turning a set of pending changes into a new commit — optionally pushing it to the remote in the same action. It temporarily replaces the section navigation with a checkbox-driven file picker and a commit form at the bottom, so everything you need to compose a commit lives on one screen.
Entering and Leaving
There are three ways to enter Commit Mode from elsewhere in the panel, and one way to leave it:
- •From the toolbar: click the Commit button in the toolbar's Overview / Commit toggle. This is the fastest path when you already know you want to commit.
- •From Overview → Quick Actions: the Overview section's Commit button jumps into Commit Mode too.
- •From Branches: when you try to switch branches with uncommitted changes, Tigrister blocks the checkout and offers a Go to Commit button in the guard dialog — picking that also drops you into Commit Mode.
To leave, click Overview in the toolbar toggle (or pick any section other than Changes from the left nav). A successful commit exits Commit Mode automatically, so you do not have to switch back manually after every commit.
The Commit Mode Layout
While Commit Mode is active the panel body is split into two columns:
- •Left column: a scrollable, grouped file list on top (the file picker) and a fixed commit form panel pinned to the bottom. This is where you decide what goes in the commit and write the message.
- •Right side: the same diff viewer you saw in the Changes section, showing the currently selected file. Commit Mode reuses the same side-by-side / unified viewer, binary-file placeholder, and "No changes" fallback — nothing to re-learn.
When the panel enters Commit Mode with pending changes available, it selects the first file for you automatically, so the diff viewer is already showing something relevant on the very first frame.
If the repository has nothing to commit — no staged, unstaged, or untracked files — the file list is replaced by a centered "No changes to commit"placeholder. The commit form is still visible but the action buttons will stay disabled until you have something to commit.
The Checkbox File Picker
Commit Mode's file picker shows the same three groups as the Changes section — Staged, Unstaged, and Untracked — but with one crucial addition: every row, and every folder inside a row, has a checkbox in front of it.
The set of checked files is the exact set that will end up in the commit when you press the button at the bottom. You do not have to manage the staged vs. unstaged distinction yourself — Commit Mode re-stages anything you tick and un-stages anything you untick right before creating the commit, so the index always matches your checkboxes.
- •Starting state: when Commit Mode opens, every file that is already staged is pre-ticked. If you came from Overview after a Stage All, every single pending file is pre-ticked.
- •Folder checkbox (tri-state): each folder group has its own checkbox. Checked means every file in the folder is checked, unchecked means none are, and a third indeterminate state means some are. Clicking a folder checkbox toggles every file inside in one step.
- •Per-file actions still available: hovering a row still reveals the same Stage / Unstage / Discard buttons from the Changes section, if you want to act on a single file outside the checkbox flow. Clicking a row (outside the checkbox) selects it for the diff viewer.
The Commit Form
Pinned to the bottom of the left column is the commit form. From top to bottom:
- •Auto-generated message chip (optional): a thin, tappable row showing a suggested commit message. It appears only after you generate one (see below). Clicking the chip copies its text straight into the message input.
- •Message textarea: a two-line input with the placeholder "Commit message...". Multi-line messages are supported — the first line becomes the commit subject and any subsequent lines become the body, matching standard Git conventions.
- •Generate button (sparkles icon next to the textarea): asks Tigrister to generate a message automatically based on the current staged changes. The generated text lands in the chip above the textarea; clicking the chip fills the input.
- •Inline warning line: if you try to commit with nothing selected or without a message, a short red line appears explaining what is missing ("No files selected" or "Please enter a commit message"). Typing in the message or ticking a file clears it.
- •Primary button: Commit to <branch> — creates the commit on the currently checked-out branch only, using whatever set of files is currently ticked and the message in the input.
- •Secondary button: Commit & Push — does the same commit, then immediately pushes the current branch to the configured remote. See the note below for how failures are handled.
You can also trigger Commit to <branch> with the keyboard: pressing Cmd/Ctrl + Enter while the message textarea is focused submits the commit without touching the mouse.
What Happens When Commit & Push Can't Push
Commit Mode treats the commit step and the push step as two separate phases. The commit is created first; only when that succeeds does the push run. This has an important consequence: if the push fails for any reason, the local commit is already recorded and is never rolled back. You keep your work and can push it again later from the toolbar, once the cause of the failure is resolved.
When the push fails because there is no token saved for the remote's host, Commit Mode shows the same Token Required dialog described in the toolbar sub-section. The dialog is keyed to the commit-and-push flow, so on success it retries only the push (the commit itself already ran) and then exits Commit Mode. Any other push failure shows the normal error state and leaves you in Commit Mode so you can react.