Review and commit changes
Changes
Section titled “Changes”Changes lists staged, unstaged, untracked and conflicted files, as a list or a tree, with a filter and All / Unstaged / Staged views. Selecting a file shows its diff: numbered lines that scroll horizontally, with the correct before and after for staged, working and commit changes, including renames.
Staging
Section titled “Staging”- Stage or unstage a whole file, a hunk, or selected lines of a modified text file.
- Staging, unstaging or discarding the file you are reviewing moves to the next file.
Stage and unstage go through a change queue: files move at once and fade until Git has them, so you can stage file after file without waiting. Entries run one at a time, in order. A locked index.lock is retried for a few seconds — ffgit never deletes it — and a failure moves the files back. The Change queue menu in the file list’s toolbar shows each entry with Cancel, Retry and Dismiss.
Commit
Section titled “Commit”The composer has a summary, an optional description and the staged count. Amend is an explicit choice. A failed commit keeps your draft, and so does anything you type afterwards. Hooks and signing run exactly as configured in Git.
Before a commit, ffgit marks staged files that need a look:
- a file over the size limit (50 MiB by default, set in Cleanup › Suggestions);
- build output, by the rules of Build output in Git;
- a likely secret, found by its name (
.env,*.pem,*.p8,*.p12,id_ed25519,*private-key*…) — ffgit does not read the contents; - a file listed in
.ffignore.
Commit and Amend name them once, with the reason, and offer Commit anyway or Unstage them. Only that click unstages, and only those files.
History
Section titled “History”History draws a topological commit graph across branches, tags and remotes, with branch filtering, merge edges and pagination. Badges tell local branches, remote-tracking branches, tags, branches checked out in another worktree and other worktrees’ detached HEADs apart. Search history by message, author, hash, path or code.
Branches and worktrees
Section titled “Branches and worktrees”- Switch or create branches, with a confirmation before switching.
- Discover, create and open linked worktrees. A new worktree checks out its submodules (All, the default, Top level or None).
- Clone, fetch, pull and push. A GitHub or GitLab profile can carry an SSH key or a saved token used for that Git process only.
Visible repositories refresh from Git operations, file system events and a two-second status poll; windows in the background pause their watchers.