New
If a row does something, it now says so.
Lists you can click light up under the pointer, everywhere: the branch list, the changed files, the stash entries, the clone picker, the settings, the breadcrumb. It sounds small and it is the difference between a list you read and a list you use — before this, several of those rows responded to a click with nothing on screen suggesting they would, and nothing telling you which one you were on.
The same pass made whole rows clickable where only a word used to be. A file in the Unstage tab opens its diff from anywhere on the row, not just from the characters of its path.
Open a commit the way you open a folder.
Every commit in the Commits tab has a disclosure chevron. Open it and the files that commit touched unfold underneath, with a N files · +added −removed summary on top and, per file, git's own status letter, the path, the old name on a rename, and that file's own line counts. Binary files say binary rather than pretending to a count.
Click a file and its diff for that commit opens in a sheet — the same viewer the working-tree diff uses, scoped to what this one commit did to this one file. It is read-only: nothing here stages, discards or reverts. What a commit removed is often the part worth reading, so deleted files open too.
The list is fetched only when you open a row, so the tab costs the same however far you scroll. Merge commits list what they brought in rather than the nothing they used to.
The Branches tab was rebuilt.
The branch you are on is pinned at the top in its own card, with its upstream and how far ahead or behind it is, so it never scrolls away. Local and Remote are separate groups, each with a count and separated rows, instead of two captions over undifferentiated text. Checking a branch out is a click anywhere on its row.
Read an issue or a pull request without leaving FinderGit.
A row opens in place onto the full description, rendered as Markdown — headings, lists, links, code — under the author and when they filed it, followed by the discussion. A long description folds behind Show more so one verbose issue cannot push the rest of the list off screen.
On a pull request that means the whole conversation: the body a reviewer submitted with their verdict and the notes pinned to lines of a file, each labelled for what it is, not just the comments tab. A pull request reviewed entirely inline — which is how most of them are — used to look as though nobody had said a word.
Open in browser and Copy link sit underneath for the parts FinderGit does not render. Images in a description are deliberately not downloaded: an issue body is written by anyone who can open an issue, and fetching an image it names would tell that person your IP address and when you read it.
Everything above is translated into Italian, French, German and Spanish.
Fixed
A way to lose work. Discarding a file whose name contains *, ? or [...] could revert an unrelated file that happened to match — and Discard has no undo. The same slip made Stage act on more files than you picked, and made a single file's diff show its neighbours' changes under the wrong name. Every path FinderGit hands back to git is now taken literally. If you have never named a file that way this never touched you; if you have, it did so silently.
A branch that was not a branch. The Branches tab listed origin among the remote branches, with a Checkout button git would have refused. It was the remote's own name leaking through a filter that could never match.
Wrong grammar in four languages. The file-status badge in a commit shared a translation with the panel that counts how many repositories are dirty, so a tooltip about one file read as a plural in Italian, French and Spanish. English showed nothing wrong, which is why it survived until now.
A commit whose file list could not be trusted is now refused rather than shown. If a path in it cannot be decoded, clicking it would have opened another file's diff or none at all.
Under the hood
- Comments merged from three sources keep distinct identities, so none is silently dropped from a discussion.
- Refresh on the Issues and Pull Requests tabs now reaches a thread you already have open, instead of only the list behind it.
- Expanding a commit cancels its file load when you collapse it, so walking a long history no longer leaves a screenful of git processes racing each other.
- Empty and space-only strings no longer enter the translation catalogue as keys nothing can translate. All three catalogues now read 100% in every supported language.
- 453 tests.
Verify this download
Compare the checksum of the file you downloaded:
shasum -a 256 FinderGit-0.29.0.dmg
It must print exactly:
fa71e59120a489cd66be82cf442c1a4776192fdacebae7e26013904068b43921
The DMG is also signed with an Apple Developer ID and notarized by Apple, which you can confirm without installing it:
spctl -a -vv -t open --context context:primary-signature FinderGit-0.29.0.dmg
That reports source=Notarized Developer ID for a genuine build.