Working copy and commits
Refyard
Using the workbench

Working copy and commits

Stage, unstage, discard, stash and commit — and the preconditions each of those checks first.

The working copy panel groups the repository’s paths the way git status does — staged, unstaged and untracked — with a per-file diff beside the list. Bulk actions pre-check every path first: if one path cannot be represented or is a symlink, submodule or special type, the whole batch is refused before anything is written, so an action never half-applies.

Everyday writes

ActionNotes
Stage / unstageOne path or the whole group.
CommitMessage required; hooks run as they always do.
AmendReplaces the last commit; the message can be kept.
Stash / popStashes are listed in the Stashes panel with apply, pop and drop.
DiscardRestores tracked paths to the index — see below.

Discard is narrower than it sounds

Discarding restores tracked working-tree files to the index, never to HEAD. Untracked and ignored files are never touched, and git clean is never run. Before writing, Refyard takes a recovery backup of what is about to be lost; if the backup fails, the discard does not run.

A discard is confirmed against a preview token that binds the path’s content fingerprint to the request. If the file changed between the preview and the confirmation, the operation is stale and must be re-confirmed — git status markers alone are not proof that content is unchanged.

When the outcome is unknown

Git can have side effects even when the result cannot be established — a commit interrupted mid-write, for example. Refyard reports that as unknown, refuses to retry a mutation, blocks the next dependent write, and shows what it could and could not determine. An uncertain result is never labelled succeeded.

Hooks, signing and filters

Refyard never passes --no-verify, never turns signing off, and never rewrites your Git configuration. If a commit fails because a hook rejected it, that is the hook’s answer and the panel shows it.