Repository navigation
gitmini v0.3.0
What's new
Rewriting and undoing history
- Reset the current branch to a commit. Right-click a commit in the graph and choose Reset
<branch>to here..., then pick Soft, Mixed, Keep or Hard. Soft, Mixed and Keep can be undone. Hard cannot, and the dialog says so. - Squash consecutive commits. Select two or more consecutive commits in the graph and choose Squash N commits.... You edit the combined message before anything is rewritten, and the squash can be undone.
- Tags. Create lightweight or annotated tags from a commit or from the + of the Tags section, delete them (with undo), push a single tag, and delete a tag on the remote when it clashes with yours. The Push dialog has a new Also push annotated tags option.
- Discarded files. Files and lines you discard are now kept, and you can restore the file as it was from the Recovery panel (Discarded tab, next to the reflog).
Day-to-day work
- Line-by-line staging. Select lines in a diff to stage, unstage or discard just those lines.
- Take ours or theirs in one step. Resolve a conflicted file from its right-click menu (
ofor ours,tfor theirs) or from the buttons in the diff. - Merge preview. Before a merge, the drop menu and the merge dialog tell you whether it would conflict, and in which files, without touching your repository. This needs Git 2.38 or later; with an older Git, gitmini says the preview is unavailable and the merge still works.
- File history and blame. Open the history of a file (optionally following renames) or blame it, from a diff, a file menu or the command palette.
- Automatic fetch. Settings → Fetch automatically fetches the open repository every 5, 15 or 30 minutes while the window is visible and idle, then offers to pull. It is off by default, it never asks for a password, and it backs off after an authentication error. The ahead/behind tooltip now shows when the last fetch happened.
- Sidebar filter and branch folders. Filter branches and tags (press
/in the list); branches namedfeature/...are grouped in folders. - Better diffs. Changed words are highlighted inside a modified line, and the number of context lines can be changed from the diff header or in Settings → Diff context.
- Smarter command palette. Fuzzy matching, recent commands first, and
@for branches,#for commits and/for repositories. - Network proxy. Settings → Proxy offers System, No proxy or Manual. It applies to HTTPS remotes and to updates. SSH remotes are not affected.
- New repository. A New repository dialog (welcome screen, tabs menu, command palette) creates a repository with an optional README and initial commit. It refuses to create a repository inside another one.
Fixes
- Hunk actions (stage, unstage, discard) are refused on files that are not valid UTF-8, instead of silently replacing bytes. Staging or discarding the whole file still works.
- Changes to tracked files that match an ignore pattern (force-added or vendored files) are now detected, so the status no longer goes stale.
- Windows: a Git identity set in your global configuration, or in a file it includes, is picked up without restarting gitmini. Cherry-pick and revert no longer keep failing with a missing identity.
- Windows: Git commands no longer flash a console window, and short write operations show a spinner with the operation name after a brief delay.
- A few leftover French strings in the English interface are now translated (toolbar, spinner, shortcut labels, error messages).
Performance
- Selecting a commit with many changed files is faster, and is cancelled when you select another commit. A 2,000-file commit went from about 1.0 s to 0.3 s in our benchmark.
- Refreshing the graph after an amend, reset or rebase no longer freezes the log, the status and the sidebar.
- An open diff is reloaded only when its own file changes, not on every change in the working tree.
Security
- The GitHub token is now sent only to Git commands that contact the configured GitHub host. Hooks, LFS and SSH commands for other remotes can no longer read it.
- The development bridge now rejects requests from other local web pages. This affects development setups only, not the installed application.
Downloads and signing
- macOS:
.dmgfor Apple Silicon (aarch64) and Intel (x64), ad hoc signed and not notarized. On first launch, allow gitmini in System Settings → Privacy & Security. - Windows:
x64-setup.exe(per-user, no administrator rights), not Authenticode-signed yet, so SmartScreen may show a warning. - Linux:
.AppImageand.deb(x64). - In-app updates are signed with the gitmini updater key and verified before installation, independently of operating-system code signing.
- Verify downloads with
SHA256SUMS, for exampleshasum -a 256 -c SHA256SUMS --ignore-missing. - gitmini requires Git 2.30 or later (2.38 or later for the merge preview).
See docs/releases.md for installation and verification details.