Git for Windows v2.51.0.windows.2
·
2762 commits
to main
since this release
Changes since Git for Windows v2.51.0 (August 19th 2025)
New Features
- Comes with PCRE2 v10.46.
- Comes with cURL v8.16.0. This addresses a bug where fetches/pushes could fail with
failed to read data from server: SEC_E_CONTEXT_EXPIRED (0x80090317)under certain circumstances. Also included: a back-port of a fix for a bug where connection failures were mistakenly reported as time-outs. - Comes with Tig v2.6.0.
- Comes with MinTTY v3.8.1.
- Comes with OpenSSL v3.5.3.
Bug Fixes
- The auto-updater now shows Git for Windows icon in the notification also on Windows/ARM64.
git clone/git fetchnow deals more gracefully with directory / file conflicts when the files backend is used for ref storage, by failing only the ones that are involved in the conflict while allowing others. This is a regression in Git v2.51.0 that was reported in Git for Windows and independently also to the Git mailing list. This was fixed by merging Git's topic branchkn/refs-files-case-insensitive.- Support for pathspecs in
diff --no-indexwas somewhat buggy, which has been fixed. git sparse-checkoutsubcommand learned a newcleanaction to prune otherwise unused working-tree files that are outside the areas of interest. An earlier version of this had been integrated into Microsoft Git already. This was fixed by merging Git's topic branchds/sparse-checkout-clean.git rebase -ifailed to clean-up the commit log message when the command commits the final one in a chain of "fixup" commands, which has been corrected. Backported from Git's topic branchpw/rebase-i-cleanup-fix.git subtreedid not work correctly when splitting squashed subtrees, which has been improved. Backported from Git's topic branchcs/subtree-squash-split-fix.- Some among
git add -pand friends ignoredcolor.diffand/orcolor.uiconfiguration variables, which is an old regression, which has been corrected. This was fixed by merging Git's topic branchjk/add-i-color. - A corner-case bug in
git log -L...has been corrected. This was fixed by merging Git's topic branchsg/line-log-boundary-fixes. - A broken or malicious
git fetchcan say that it has the same object for many many times, and the upload-pack serving it can exhaust memory storing them redundantly, which has been corrected. This was fixed by merging Git's topic branchps/upload-pack-oom-protection. - Fixes multiple crashes around midx write-out codepaths. This was fixed by merging Git's topic branch
ds/midx-write-fixes. git repack --path-walklost objects in some corner cases, which has been corrected. This was fixed by merging Git's topic branchds/path-walk-repack-fix.- Under a race against another process that is repacking the repository, especially a partially cloned one,
git fetchmay mistakenly think some objects we do have are missing, which has been corrected. This was fixed by merging Git's topic branchjk/fetch-check-graph-objects-fix. - Various options to
git diffthat makes comparison ignore certain aspects of the differences (like "space changes are ignored", "differences in lines that match these regular expressions are ignored") did not work well with--name-onlyand friends. This was fixed by merging Git's topic branchly/diff-name-only-with-diff-from-content. git diff --no-indexrun inside a subdirectory under control of a Git repository operated at the top of the working tree and stripped the prefix from the output, and oddballs like "-" (stdin) did not work correctly because of it. Correct the set-up by undoing what the set-up sequence did to the current working directory and prefix. This was fixed by merging Git's topic branchjc/diff-no-index-in-subdir.- Various bugs about rename handling in "ort" merge strategy have been fixed. This was fixed by merging Git's topic branch
en/ort-rename-fixes. git pushhad a code path that led toBUG()but it should have reported a regular failure, as it is a response to a usual but invalid end-user action to attempt pushing an object that does not exist. This was fixed by merging Git's topic branchdl/push-missing-object-error.git refs migrateto migrate the reflog entries from a refs backend to another had a handful of bugs squashed. This was fixed by merging Git's topic branchps/reflog-migrate-fixes.- During interactive rebase, using
dropon a merge commit lead to an error, which was incorrect. This was fixed by merging Git's topic branchjs/rebase-i-allow-drop-on-a-merge.
| Filename | SHA-256 |
|---|---|
| Git-2.51.0.2-64-bit.exe | 5cf583441ccd8d98d3492936235b6ee30c6847d1b3f49365d6a025b3432094ad |
| Git-2.51.0.2-arm64.exe | ba95adc559e2d91ae28aa354c0ffb06b2c54f2bf42985f278dded9ca31194816 |
| PortableGit-2.51.0.2-64-bit.7z.exe | 85d6e9f865b73827e22d532fd6cd5b93987c8d264142786b0721956619d5c00e |
| PortableGit-2.51.0.2-arm64.7z.exe | f35e795224349c63b7d6c429c2d8404a6ce7e2e8f91934a3f6ba2ca8e7e285a8 |
| MinGit-2.51.0.2-64-bit.zip | 314fc2b7425ca116ea201e493fcb72008376c64997e866e6c8b8a5b360b3b8a9 |
| MinGit-2.51.0.2-arm64.zip | 4feecfaea2647a2a0b25b7bfa518b9a65eb3434d9be7016e4dd348f07bcc6d2f |
| MinGit-2.51.0.2-32-bit.zip | 617a1433fbf5e23deaa17b7559d79f465a08fea7e09a0cff32ac0f2216003a8e |
| MinGit-2.51.0.2-busybox-64-bit.zip | deb7e15ec1e33cad225a6be4401617e21569d188da0a1ca71c29d8018ad087b6 |
| MinGit-2.51.0.2-busybox-32-bit.zip | b2ed51815e858497c2399004a855d5ebb0f8eacd93e0a81a6afc46b5741efda6 |
| Git-2.51.0.2-64-bit.tar.bz2 | 0e4dcabc37f9749fb57b292611a53155842fe52bcbef8e7f56cc80ced65bf3f5 |
| Git-2.51.0.2-arm64.tar.bz2 | a219d91f5f8e707f5e7ff23402af1e7e6421c972896fa3f33edba170439bae90 |