| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| latest.json | 2026-08-19 | 12.0 kB | |
| GitDesktop_0.9.3_universal.app.tar.gz.sig | 2026-08-19 | 408 Bytes | |
| GitDesktop_0.9.3_universal.app.tar.gz | 2026-08-19 | 36.8 MB | |
| GitDesktop_0.9.3_universal.dmg | 2026-08-19 | 35.9 MB | |
| GitDesktop_0.9.3_x64-setup.exe.sig | 2026-08-19 | 420 Bytes | |
| GitDesktop_0.9.3_x64-setup.exe | 2026-08-19 | 13.3 MB | |
| GitDesktop_0.9.3_x64_en-US.msi.sig | 2026-08-19 | 420 Bytes | |
| GitDesktop_0.9.3_x64_en-US.msi | 2026-08-19 | 19.0 MB | |
| GitDesktop_0.9.3_amd64.AppImage.sig | 2026-08-19 | 424 Bytes | |
| GitDesktop-0.9.3-1.x86_64.rpm.sig | 2026-08-19 | 420 Bytes | |
| GitDesktop_0.9.3_amd64.AppImage | 2026-08-19 | 93.4 MB | |
| GitDesktop-0.9.3-1.x86_64.rpm | 2026-08-19 | 20.7 MB | |
| GitDesktop_0.9.3_amd64.deb.sig | 2026-08-19 | 416 Bytes | |
| GitDesktop_0.9.3_amd64.deb | 2026-08-19 | 20.7 MB | |
| GitDesktop v0.9.3 source code.tar.gz | 2026-08-19 | 6.5 MB | |
| GitDesktop v0.9.3 source code.zip | 2026-08-19 | 7.3 MB | |
| README.md | 2026-08-19 | 4.5 kB | |
| Totals: 17 Items | 253.6 MB | 0 | |
Changed
- Cherry-pick to branch with a single commit now pauses on the destination branch when it conflicts, so you resolve it in the app and continue like any other conflict — and a resolution that keeps the destination's own version finishes from the banner too. Operation history shows the pick as Paused until you finish or abort it. Picking several commits at once still rolls the whole batch back, and the dialog now refuses to start while another merge, rebase, cherry-pick or revert is in progress.
- A blocked merge names what it's waiting on. When a GitHub pull request merges cleanly but the base branch's protection rules won't let it land, the strip under the header now says so and lists the required checks still outstanding, and a refused merge repeats that line alongside the forge's own message. Merge stays available, since whoever holds bypass permission on those rules can merge anyway.
Fixed
- Accept all current / Accept all incoming now resolve a conflict where that side deleted the file — taking the side takes the deletion. The conflict view names which side removed it, so the choice is clear before you make it.
- Cancelling an agent turn and immediately sending a new prompt keeps the two turns apart: the cancelled turn keeps its own late output and saved transcript, and the new turn streams and checkpoints on its own.
- Archived branches stay archived: Cherry-pick to branch… lists (and pre-selects) only active branches, Unarchive is available on the branch you're checked out on, and the default branch can no longer be archived.
- Clean up branches shows which branches are merged from your local history even with no connection (the branch switcher's ahead/behind counts work offline too), and announces its progress line to screen readers.
- Clean up branches now tells you when it's waiting for a connection to check which branches were merged through a pull request.
- When git refuses a commit (a hook rejects it, or nothing is staged), the error now shows git's own report. Covers the commit box, an agent session's commit, and the squash behind Keep.
- Conflicts now name what they hit. Update from main on the branch you're on, a stash pop or apply, and merge, rebase, cherry-pick, revert and pull all list the conflicted files and carry git's full report in Details — and a conflicted stash reapply says the stash was kept.
- When editing history hits a conflict, the error details now carry git's full report, including the list of conflicted files — and a squash that leaves nothing to commit now says so.
- Force pushes now pass
--force-if-includesalongside--force-with-lease: the push refuses to overwrite work you haven't incorporated, even when a background fetch has already brought it into your remote-tracking refs (which is enough to satisfy the lease alone). On a Git older than 2.30, or a branch without a reflog for the check to read, pushes keep the lease-only guard, and the success toast says so. - A force push that Git blocks now explains what happened (the remote moved since your last fetch, or it holds commits your branch hasn't incorporated) instead of showing raw Git output; the full text is still one click away under Details.
- GitLab sign-in, accounts, and Git credentials now pick up self-managed hosts
from hand-edited
glabconfigs, including ones written with YAML anchors, aliases, comments, or quoted host names. - GitLab error messages and the sign-in code screen no longer carry
glab's own "update available" notice when the installed CLI is out of date. - When finishing a pull-request conflict resolution fails, the error now carries git's whole explanation.
- Promote a worktree and its dialog closes right away — the removal step shows the same in-progress line and Removing… row as deleting one, and the promote finishes in the background.
- Renaming the branch you're on carries your commit draft over to the new name, and a commit message being generated at the time keeps streaming into it.
- Notes for reviewers follow a branch through a rename, so the Create-PR dialog still seeds them under the branch's new name.
- While a worktree removal runs in the background, the branch menu's worktree actions now stand down with the reason on the label (matching the Worktrees manager) instead of failing against a half-deleted folder.