This release is a feature release which introduces several new options for fetching Git LFS objects, such as the ability to force objects to be re-downloaded and the capacity to output object URLs and HTTP metadata in JSON for external tools to consume. This release also adds a configurable in-memory cache of file path pattern matches, which along with other changes can help reduce the time required to migrate large repositories to Git LFS.
Git LFS now supports the same .netrc
files on Windows as Git and
curl, retries appropriately after all 429 status code HTTP responses,
permits the use of symbolic links to Git's object storage during
Git LFS migrations, and avoids spurious TLS verification errors when
custom CA certificates are configured on macOS.
Note that the v3.7.x series of Git LFS releases are the first for which we provide packages and support for versions of Linux distributions based on Red Hat Enterprise Linux (RHEL) 10, such as Rocky Linux 10.
Note also that beginning with this release, we no longer provide packages or support for versions of any Linux distribution based on Debian 10 ("buster"), RHEL/CentOS 7, or SUSE Linux Enterprise Server (SLES) 12.
This release is built using Go v1.24 and therefore on Linux systems now requires Linux kernel version 3.2 or later.
We would like to extend a special thanks to the following open-source contributors:
- @alexkad0 for improving the performance of our
migrate
command - @alingse for making our code simpler and more readable
- @DarkDefender for refining the documentation of our
checkout
command - @fedirz for tidying up the documentation of our
migrate
command - @gergelyfabian for helping update our Go dependencies
- @johanvdw for enhancing our
.netrc
file support on Windows - @Juneezee for updating our code to use new Go built-in functions
- @LucasDondo for revising our Linux installation instructions
- @m3ka24 for amending the documentation of our
prune
command - @philip-peterson for correcting our HTTP error reporting
- @redsun82 for adding multiple new options to our
fetch
command - @slonopotamus for fixing JSON examples in our API documentation
- @stanhu for addressing conflicts between custom CA certificates on macOS
Features
- Cache a file path filter match result [#6047] (@alexkad0)
- Add
--refetch
option tofetch
[#5975] (@redsun82) - Add
--json
option tofetch
[#5974] (@redsun82) - Add
--dry-run
option tofetch
[#5973] (@redsun82)
Bugs
- Verify TLS/SSL certificates using default Go support for macOS system root CAs [#6049] (@chrisd8088)
- Prefer .netrc on windows if present [#6055] (@johanvdw)
- Fix migrations where
.git/objects
is a symlink [#6042] (@bk2204) - Honour 429 object transfer response
Retry-After
headers [#6014] (@chrisd8088)
Misc
- Update Linux distribution package list for v3.7.0 release (@chrisd8088)
- Report missing objects consistently when pushing [#6027] (@chrisd8088)
- Use a git-update-ref script to update references [#6048] (@alexkad0)
- Drop unused generic stub function for cloning files [#6050] (@chrisd8088)
- Prevent conflicting curl macros in early Git version CI jobs [#6040] (@chrisd8088)
- pull: improve error message on failing checkout [#5629] (@bk2204)
- Fix language in code snippets in API docs [#6035] (@slonopotamus)
- build(deps): bump golang.org/x/net from 0.36.0 to 0.38.0 [#6034] (@dependabot[bot])
- Use single-target
Makefile
patterns for manual pages [#6032] (@chrisd8088) - use direct value nil for error [#6024] (@alingse)
- Update minimum required Git version checks [#6028] (@chrisd8088)
- build(deps): bump golang.org/x/net from 0.33.0 to 0.36.0 [#6012] (@dependabot[bot])
- Upgrading x/crypto to v0.35.0 to solve CVE-2025-22869 [#5997] (@gergelyfabian)
- Upgrade to Go 1.24 [#6013] (@chrisd8088)
- Use constant format strings and fix HTTP error messages [#5998] (@chrisd8088)
- Remove command name prefixes from progress messages [#5995] (@chrisd8088)
- doc: Add missing "--to" argument in git-lfs-checkout example [#6005] (@DarkDefender)
- Replace min/max helpers with built-in min/max [#5999] (@Juneezee)
- Add security patch release process documentation [#5987] (@chrisd8088)
- Replace unused debug mode with trace logging [#5989] (@chrisd8088)
- Use default Ruby provided by Actions runners [#5984] (@chrisd8088)
- build(deps): bump azure/trusted-signing-action from 0.5.0 to 0.5.1 [#5981] (@dependabot[bot])
- Update workflows to use ARM runners and new Apple signing certificate [#5977] (@chrisd8088)
- docs/man/git-lfs-prune.adoc: fix --(no-)verify-unreachable description [#5959] (@m3ka24)
- docs/man/git-lfs-migrate.adoc: remove duplicate flag [#5944] (@fedirz)
- Upgrade
golang.org/x/net
from 0.23.0 to 0.33.0 [#5940] (@gergelyfabian) - build(deps): bump golang.org/x/crypto from 0.21.0 to 0.31.0 [#5935] (@dependabot[bot])
- Simplify macOS CI jobs and specify Go toolchain version [#5931] (@chrisd8088)
- Tighten security of Actions workflows [#5930] (@bk2204)
- Corrected Pop!_OS naming [#5929] (@LucasDondo)
- Update release process documentation and scripts [#5920] (@chrisd8088)
- Update license copyright dates and minimum supported Git version [#5921] (@chrisd8088)
Packages
Up to date packages are available on PackageCloud and Homebrew.
RPM RHEL 8/Rocky Linux 8 RPM RHEL 9/Rocky Linux 9 RPM RHEL 10/Rocky Linux 10 Debian 11 Debian 12
SHA-256 hashes:
git-lfs-darwin-amd64-v3.7.0.zip eab348c3985c55b013d5536965b7a102b2925acf09fbf11bf157e64a7e92b798
git-lfs-darwin-arm64-v3.7.0.zip 34ca9df7031061b8471d53076cb76a974768937a209c3fcaa3de6270ec6465ea
git-lfs-freebsd-386-v3.7.0.tar.gz f4c23fe8fe327603c98057edf09c4fed5f45dca6ba9f32376330f9ec8333a306
git-lfs-freebsd-amd64-v3.7.0.tar.gz 55f56709a49d2621c7615f95c995e502eba5006526e864a682b829ea6fa2cf69
git-lfs-linux-386-v3.7.0.tar.gz 9f0d30fb796b14ea2f2a8c238a8e9e6300457f1a97ea2cefb76146d0b7c2e81f
git-lfs-linux-amd64-v3.7.0.tar.gz e7ebba491af8a54e560be3a00666fa97e4cf2bbbb223178a0934b8ef74cf9bed
git-lfs-linux-arm-v3.7.0.tar.gz 52438d6522888f36278ec0ff0e3f51849c818f35ffecae999a6daf2fa2cb1c8a
git-lfs-linux-arm64-v3.7.0.tar.gz 88c24cb0c772cb6570e70f336ef4bb7b6539c5fb9ebeda563e9a5458ca82a98e
git-lfs-linux-loong64-v3.7.0.tar.gz eef9b30f1feb5ac78df82a40ed1b0e79623bd8a77e1b570812bc7b5a4ec04982
git-lfs-linux-ppc64le-v3.7.0.tar.gz a4a79bd135e7be4d7fedfeb0d8e358f453911d5478a349c8c2ecff07d2ebb2c2
git-lfs-linux-riscv64-v3.7.0.tar.gz 4b2244431525b4e25767ed034d0bd49856d3017456d85828e3da7ebf34e9730b
git-lfs-linux-s390x-v3.7.0.tar.gz 5f3c1167df6f50fe88bea1e17fa8291d85fe5a214ad7326511ec929c09a54ad9
git-lfs-v3.7.0.tar.gz d078b8393514c65c485d1628e610449ba048af746749912bd082d818b2454348
git-lfs-windows-386-v3.7.0.zip ea8c5fe2125650fbe6e00b27d139511965b77c2f5f017cb1345b67804de00803
git-lfs-windows-amd64-v3.7.0.zip 10be221ee5a76c6f4fc4d5b0c84d9b6f97b0db4815fb39a1b9579f04d37379ec
git-lfs-windows-arm64-v3.7.0.zip ec56aef19f3bcd33a239046a82b81a9844db2f66294434c5c54a470aa28ee669
git-lfs-windows-v3.7.0.exe 70a30e7218fa945efbffc8305bcf7308551312b34e193bdb3509dee20367a10e
hashes.asc 1e0b6cd06aa73d799b5a3e18310a01d89b6b98df11ebb7acd9a623111657e4d7
sha256sums.asc 05edaa00a72f6eeea3d6cea1a5a6ed35b468e6942ceb741d9e29eb366bc4080a