Recent Releases
3.6.030 Nov 2024 11:25
major bugfix:
This release is a feature release which includes support for multi-stage
authentication with Git credential helpers (requires Git 2.46.0) and
relative worktree paths (requires Git 2.48.0), a new object transfer batch
size configuration option, better path handling when installing on Windows,
more POSIX-compliant hook scripts, and improved performance with sparse
checkouts, partial clones, and Git remotes with large numbers of tags.
Note that the 3.6.x series of Git LFS releases will be the last releases.
for which we provide packages or support for versions of any Linux
distribution based on either Red Hat Enterprise Linux 7 (RHEL 7) or
SUSE Linux Enterprise Server 12 (SLES 12).
Note also that the 3.6.x series of Git LFS releases may be the last.
releases for which we provide packages or support for versions of any
Linux distribution based on Debian 10 ("buster").
This release is built using Go v1.23 and therefore on macOS systems.
requires macOS 11 (Big Sur) or later, and on Windows systems requires
at least Windows 10 or Windows Server 2016 (although Windows 8.1 may
suffice).
We would like to extend a special thanks to the following open-source.
contributors:
@blanet for ing a crash when handling HTTP 429 responses.
@bogomolets-owl for implementing a batch size configuration option.
@ConcurrentCrab for preventing hung SSH transfer protocol connections.
@jochenhz for ensuring files with Unicode names are not accidentally pruned.
@pastelsky for optimizing performance of our pre-push hook.
@rustfor correcting some code comments.
@rusttech for ing an array size allocation @xdavidwu for improving the portability of our tests and hooks.
Features:
git: improve sparse checkout support #5796.
hook: newlines in command missing message #5886.
Add batch size config value and use it everywhere #5876.
Support relative paths to linked working trees #5898.
git-lfs: omit tags in ls-remote; optimize pre-push #5863.
Support multistage authentication with a
3.5.029 Feb 2024 05:45
major feature:
This release is a feature release which includes support for LoongArch and
RISC-V Linux binary tarballs, `FETCH_HEAD` as a remote source, better support for detection of the system gitattributes file,
and configuration options for the SSH protocol. In this release, the
`FETCH_HEAD` support is experimental and subject to change.
We would like to extend a special thanks to the following open-source.
contributors:
@jochenhz for improvements to `git lfs prune`.
@murez for improvements to our installation script.
@qiangxuhui for tooling to build 64-bit LoongArch packages.
@AaronDewes for tooling to build 64-bit RISC-V packages.
@b-camacho for allowing `FETCH_HEAD` as a fallback remote source.
@tigsikram for ing some broken links.
@aymanbagabas for ing our SSH protocol documentation.
@KyleFromKitware for improvements to the pure SSH protocol.
@Juneezee for several code cleanups.
@cmaves for improving performance of our progress indications.
@QuLogic for improving completions and updating docs.
@philip-peterson for helping detect invalid refs in `git lfs push`.
@bogomolets-owl for helping include the reference specified in unlock requests.
Features:
Add --verify-unreachable option to LFS prune #5648.
attribute: warn if config exists after uninstalling #5635.
Initialize sessions lazily #5634.
Add a `--local` argument to install.sh #5618.
Provide loong64 Binary Support #5607.
Improve locking performance #5561.
Allow configuring the SSH protocol #5555.
Add `FETCH_HEAD` as fallback remote source #5357.
Use `git var` to find system gitattributes file #5412.
Add RISC-V support #5438.
:
Add support for homedir expansion in SSL key and cert paths #5657.
Display correct status information when `git lfs ls-files` run in subdirectory #5653.
git lfs prune is deleting staged files in the index #5637.
Report invalid ref in `git lfs push` command #5639.
Always open files when cloning and spooling #5617.
git-scm.com links #5589.
doc: update ssh_ad
3.4.110 Jan 2024 19:04
major bugfix:
This is a bugfix release which resolves a bug introduced in the
v3.4.0 release, where Git LFS may crash if the Git credential manager
returns credentials containing one or more empty fields.
3.4.027 Jul 2023 03:16
major bugfix:
(26 July 2023).
This release is a feature release which includes support for generating.
shell scripts for command-line tab-completion of Git LFS commands with
the new `git-lfs-completion(1)` command, providing multiple headers to Git
credential helpers (a new feature as of Git 2.41), and installing Git LFS
with a Git configuration file stored under the XDG configuration path.
Note that this release will be made by a different member of the core.
team than the person who performed many of the past releases, and thus
this release will be signed with a different OpenPGP key. Please follow
the steps in the README to download all of the keys for the core
team to verify
this release.
We would like to extend a special thanks to the following open-source.
contributors:
@anihm136 for implementing shell completion script generation.
@aymanbagabas for multiple to our SSH and transfer queue code.
@dscho for ensuring our Windows installer works on 32-bit systems.
@dyrone for correcting an erroneous file name in our documentation.
@jlosito for making sure our CI job actions are up to date.
@nfgferreira for speeding up the track command on Windows.
@ry167 for improving our Ubuntu installation instructions.
@salvorizza for ing a JSON in our unlock command.
@slonopotamus for cleaning up accommodations for legacy Go versions.
@steffen for improving our installation documentation.
Features:
Add support for `wwwauth ` to credential helpers #5381.
Add a `--file` option to install and uninstall #5355.
Add shell completion generation #5311.
:
Handle local paths with trailing slashes #5402.
Unlock by ID with JSON Flag returns empty array #5385.
Refactor macro attribute handling to prevent crashes with `--up` migration option #5382.
locks: print warning about locking API to standard error #5350.
Avoid needlessly spawning SSH connections with `git archive` #5309.
standalone: print an error if the destination isn't a Git repository #5283.
locks: ensure loc
3.3.001 Dec 2022 10:05
major feature:
(30 November 2022).
This release is a feature release which includes package support for Red Hat.
Enterprise Linux 9 and compatible OSes, experimental support for multiple
Remotes, and some command-line helpers for `git lfs push`.
In this release, we no longer include vendored versions of our dependencies in.
The repository or the tarballs. These were a source of noise and bloat, and
Users can easily download the required dependencies with Go itself. Users who
Need to continue to vendor the dependencies can use the `make vendor` target.
In addition, we've also switched the documentation to AsciiDoc from.
Ronn-flavoured Markdown and included the FAQ in the repository. This means that
The manual pages now render properly in the GitHub web interface and it's also
Much easier to create additional formats, such as PDF, by leveraging the ability
of Asciidoctor to convert to DocBook.
It should also be noted that `git lfs migrate import --everything` now processes.
All refs that aren't special to Git instead of just branches and tags. This is
What it was documented to do, but didn't, so we've it.
Finally, please note that future releases may be done by a different member of.
The core team than many of the past releases, and thus may be signed by a
Different OpenPGP key. Please follow the steps in the README to download all
of the keys for the core
Team to verify releases
Successfully in the future.
We would like to extend a special thanks to the following open-source.
Contributors:
@dhiwakarK for ing a broken link.
@dscho for improving our installer.
@Leo1690 for speeding things up with sparse checkout.
@pratap043 for proposing an extension to locking.
@rcoup for ing our Makefile and adding scripting features to `git lfs push`.
@srohmen for adding support for alternative remotes.
@WhatTheFuzz for improving our error messages.
@wuhaochen for ing a long-standing with `git lfs migrate import`.
Features:
Add the FAQ in the repository #5167.
Add s
3.2.026 May 2022 03:17
major bugfix:
(25 May 2022).
This release is a feature release which includes support for machine-readable.
formats for a couple more commands, plus the ability to automatically merge
LFS-based text files from the command-line. It's likely that the merge driver
will see future improvements, but if you have feedback on the design, please use
the discussions feature.
Note that our binary release archives no longer unpack into the current.
directory, and now contain a top-level directory just like the source archives
do.
We would like to extend a special thanks to the following open-source.
contributors:
@bbodenmiller for ing the formatting in our manual pages.
@breyed for ing a typo in our manual pages.
@btoll for improving our README.
@rcoup for ing our Accept header syntax.
@vtbassmatt for documenting our deprecation of NTLM.
Features:
ls-files: add a --json option #5007.
Add --json output for git lfs track #5006.
Add a merge driver #4970.
lfs: don't write hooks when they haven't changed #4935.
Tarballs, not tarbombs #4980.
:
Apply several Makefile for Windows #5016.
git: don't panic on pkt-line without equals #4982.
lfshttp: invalid Accept header syntax #4996.
Grammar Use `gitignore`-style path matching for additional commands #4951.
Avoid pruning when identical files both match and do not match `lfs.fetchexclude` #4973.
Apply `lfs.fetchexclude` filter to previous commits when pruning #4968.
Update and correct several error message strings #4943.
script/upload: correct RHEL 8 package repo #4936.
lfs: add old hook content to the list of old hooks #4878.
.github/workflows: install packagecloud gem #4873.
Misc:
Update distros for packagecloud.io #5010.
lfshttp: log the Negotiate error on failure #5000.
Build CI on Windows 2022 #4997.
workflows: use ronn-ng #4992.
Multiple hash support #4971.
note deprecation of NTLM #4987.
Update to Go 1.18, drop older Go version support, and update modules and dependencies #4963.
Update tests to che
3.1.015 Feb 2022 11:45
major bugfix:
(14 Feb 2022).
This release is a feature release which includes support for fallback from.
Negotiate to Basic authentication, new ARM64 packages for Debian 11, a new
Localization infrastructure, and improved netrc support, in addition to various
In addition, we've addressed a performance regression for `git lfs.
Migrate import` that was introduced in v3.0.2.
At the moment, there are no translations available, but if you are interested in.
Contributing to one, please reach out in an. For compatibility with
Windows and to retain the ability to have a single relocatable binary, the
Translations are included in the binary at build time.
We would like to extend a special thanks to the following open source.
Contributors:
@donno2048 for improving our error checking.
@howardlyliao for improved netrc support.
@HermannDppes for improving our large file warning on Windows.
@rex4539 for ing various typos throughout our codebase.
Features:
Fall back from Negotiate to Basic #4815.
Add basic support for localization #4729.
Add support for ARM64 Debian packages #4728.
Netrc: consider same machine may have different login names #4726.
:
Smudge: honor GIT_LFS_SKIP_SMUDGE with checkout-index #4860.
`git lfs fsck --objects A..B` handling and drop all left/right ref terminology #4859.
Halt migration when `.gitattributes` symbolic link encountered #4849.
Merging of `.gitattributes` with execute file mode during migration #4835.
Migrate import speed regression #4813.
Typos #4806.
Move `err` checking to before the value was used #4776.
Migrate import: don't allow path filters with --above #4771.
Avoid panic on checkout with `--to` but no path, and update checkout manual #4766.
Creds: gracefully handle lack of askpass helper #4759.
Post-checkout: don't modify permissions of untracked files #4760.
Use gitattributes filepath matching for migrate filter options #4758.
Avoid errors in git lfs env #4713.
fs: specify a file as existing if it's empty #4654.
3.0.025 Sep 2021 07:25
major bugfix:
(24 Sep 2021).
This release is a major new release and introduces several new features, such as.
a pure SSH-based protocol, packages for several new OS versions, support for
ARM64 Windows, Git-compatible pattern matching, and locking multiple files on
the command line, among other items.
When connecting over SSH, the first attempt will be made to use.
`git-lfs-transfer`, the pure SSH protocol, and if it fails, Git LFS will fall.
back to the hybrid protocol using `git-lfs-authenticate`. Note that no major
forges are known to support the pure SSH protocol at this time.
Because it is a major release, we've made some backwards-incompatible changes.
A (possibly incomplete) list of them is as follows:
NTLM support has been completely removed, since nobody volunteered to in it. Users are advised to use Kerberos or Basic authentication
instead.
When using an SSH URL (that is, the syntax starting with `ssh://`), the
leading slash is not stripped off when invoking `git-lfs-authenticate` or.
`git-lfs-transfer`. This is compatible with the behavior of Git when invoking
commands over SSH.
`git lfs fsck` now additionally checks that pointers are canonical and that
files that are supposed to be LFS files actually are. It also exits nonzero
if any problem is found.
Pattern matching should be stricter and should either match the behavior of.
`.gitattributes` or `.gitignore`, as appropriate. Deviations from Git's
behavior will henceforth be treated as and accordingly.
Git LFS will now write a Git LFS repository format version into the
repository. This is designed to allow future extension with incompatible
changes. Repositories without this version will be assumed to be version 0.
Note that this is different from, but modeled on, Git's repository format
version.
`git lfs lock` and `git lfs unlock` now handle multiple pathname arguments and
the JSON format has changed to handle multiple responses.
The Go package name now contains a version number. This should
2.13.011 Dec 2020 03:25
major feature:
(10 Dec 2020).
This release introduces several new features, such as the `--above` option to.
`git lfs migrate import` and support for `socks5h` proxies. In addition, many.
Have been and several miscellaneous have been included.
Unless someone steps up to and maintain NTLM support, this will be the last.
Git LFS release to support NTLM. See #4247 for more details. Note that Git LFS
Supports Kerberos as well, which is far more secure and may be a viable
Replacement in many situations.
We would like to extend a special thanks to the following open-source.
Contributors:
@EliRibble for adding support for the `--above` option to `git lfs migrate import`.
@andrewshadura for adding support for the `GIT_LFS_SKIP_PUSH` environment variable.
@sinbad for ing problems with retaining objects used by stashes.
@tklauser for cleaning up our use of error constants in the code.
Features:
Add --above parameter to 'migrate import'. #4276.
Add GIT_LFS_SKIP_PUSH to allow skipping the pre-push hook #4202.
Lfshttp: add support for socks5h proxies #4259.
Add manual pages to release assets #4230.
Honor GIT_WORK_TREE #4269.
:
Make git lfs migrate import handle missing extensions #4318.
fs: don't panic when using a too-short object ID to push #4307.
Pattern matching for.gitattributes #4301.
Config: map missing port to default for HTTP key lookups #4282.
Tools: use IoctlFileClone from golang.org/x/sys/unix #4261.
Tools/util_darwin.go: Remove use of direct syscalls #4251.
Tools: always force a UTF-8 locale for cygpath #4231.
Prune: deleting objects referred to by stashes #4209.
Misc:
Migrate import: warn about refs on case insensitive file systems #4332.
Drop obsolete OS support #4328.
Tools: use ERROR_SHARING_VIOLATION const from golang.org/x/sys/windows #4291.
Pull: gracefully handle merge conflicts #4289.
Script/upload: avoid using Ruby's URI.escape #4266.
Add documentation of security report process #4244.
2.12.003 Sep 2020 00:45
major feature:
(1 Sep 2020).
This release introduces several new features, such as support for the SHA-256.
Repositories coming in a future version of Git, restored support for Go 1.11,
The ability to read the contents of.lfsconfig from the repository, signed and
Notarized binaries on macOS, and pre-built 32-bit ARM binaries on Linux. In
Addition, several have been and miscellaneous included.
Note that macOS releases are now shipped as zip files, not tarballs, since it is.
Not possible to notarize tarballs. macOS releases are now also built on macOS,
so `git lfs dedup` should now function.
We would like to extend a special thanks to the following open-source.
Contributors:
@saracen for adding support for ARM binaries.
@mversluys for improving locking support.
@cccfeng for updating our documentation to make it more readable.
@bluekeyes for improving performance and tracing.
@gertcuykens for adding missing parts of our documentation.
Features:
Config: optionally read.lfsconfig from the repository #4200.
Support SHA-256 repositories #4186.
Allow Go 1.11 builds by using WaitStatus.ExitStatus() #4183.
Add --worktree option to install and uninstall commands #4159.
Sign and notarize binaries on macOS #4143.
Makefile: add linux arm build and release targets #4126.
Allow locking and unlocking non-existent files #3992.
:
Docs/api/locking: add an explicit #4208.
Hang when the user lacks permissions #4207.
Don't mark unlocked files that aren't lockable as read-only #4171.
Locking: make patterns with slashes work on Windows #4139.
Git: consider full refspec when determining seen refs #4133.
Misc:
Windows CI #4199.
Testsuite when working with non-master default branch #4174.
Git: improve performance of remote ref listing #4176.
Subprocess: trace all command execution #4175.
Update git-lfs-migrate.1.ronn #3869.
t: use repo v1 with extensions #4177.
Makefile: ensure temp Go modules can be deleted #4157.
Improve test suite robustness via environment #
2.11.009 May 2020 06:45
major bugfix:
(8 May 2020).
This release introduces several new features, such as better support for unnamed.
Local paths and URLs as remotes, support for `submodule.recurse`, exponential
Backoff on failure, and support for renegotiation. In addition, numerous have been and miscellaneous have been addressed.
We would like to extend a special thanks to the following open-source.
Contributors:
@bluekeyes for adding support for exponential backoff.
@pluehne for adding support for `submodule.recurse`.
@Electric26 for ing the default behavior of a prompt.
@nataliechen1 for ing certain upload retry failures.
@shalashik for ing a panic during cherry-pick.
@swisspol for updating our documentation to reflect supported `.lfsconfig`.
Keys
@dan2468 for updating the copyright year.
Features:
Allow literal local paths as remotes #4119.
Pre-push: find named remote for URL if possible #4103.
tq: add exponential backoff for retries #4097.
Migrate import: set text to unspecified for excluded fields #4068.
Update list of distros for packagecloud.io #4080.
Lfshttp: allow renegotiation #4066.
Support submodule.recurse = true #4063.
Add man page for the post-commit hook command #4052.
Add an option to control warning about files larger than 4 GiB #4009.
:
Commands/command_migrate.go: git: avoid "bad object" messages when force-pushing #4102.
Git: avoid trying to rewrite remote tags as remote branches #4096.
Make Go tests run consistently using local binary #4084.
Commands: don't honor lfs.fetch for ls-files #4083.
Commands: print help output with --help #4059.
Fail dedup command with explanation when LFS extensions configured #4045.
Upload retry 'file already ' ' #4042.
Commands/command_filter_process: cherry-pick of several commits cause panic error #4017.
Check error when creating local storage directory #4016.
Track: detect duplicate patterns with --filename #4000.
Misc:
Removed lfs.extension. from list of supported keys for.lfsconfig #4044.
Tidy modul
2.10.024 Jan 2020 19:45
minor feature: