Git extension for versioning large files


Git Large File Storage

CI status

Git LFS is a command line extension and specification for managing large files with Git.

The client is written in Go, with pre-compiled binaries available for Mac, Windows, Linux, and FreeBSD. Check out the website for an overview of features.

Getting Started


You can install the Git LFS client in several different ways, depending on your setup and preferences.

  • Linux users. Debian and RPM packages are available from PackageCloud.
  • macOS users. Homebrew bottles are distributed, and can be installed via brew install git-lfs.
  • Windows users. Git LFS is included in the distribution of Git for Windows. Alternatively, you can install a recent version of Git LFS from the Chocolatey package manager.
  • Binary packages. In addition, binary packages are available for Linux, macOS, Windows, and FreeBSD.
  • Building from source. This repository can also be built from source using the latest version of Go, and the available instructions in our Wiki.

Note that Debian and RPM packages are built for all OSes for amd64 and i386. For arm64, only Debian packages for the latest Debian release are built due to the cost of building in emulation.


From binary

The binary packages include a script which will:

  • Install Git LFS binaries onto the system $PATH
  • Run git lfs install to perform required global configuration changes.
$ ./

From source

  • Ensure you have the latest version of Go, GNU make, and a standard Unix-compatible build environment installed.
  • On Windows, install goversioninfo with go get
  • Run make.
  • Place the git-lfs binary, which can be found in bin, on your system’s executable $PATH or equivalent.
  • Git LFS requires global configuration changes once per-machine. This can be done by running:
$ git lfs install

Verifying releases

Releases are signed with the OpenPGP key of one of the core team members. To get these keys, you can run the following command, which will print them to standard output:

$ curl -L | tar -Ozxf -

Once you have the keys, you can download the sha256sums.asc file and verify the file you want like so:

$ gpg -d sha256sums.asc | grep git-lfs-linux-amd64-v2.10.0.tar.gz | shasum -a 256 -c

Example Usage

To begin using Git LFS within a Git repository that is not already configured for Git LFS, you can indicate which files you would like Git LFS to manage. This can be done by running the following from within a Git repository:

$ git lfs track "*.psd"

(Where *.psd is the pattern of filenames that you wish to track. You can read more about this pattern syntax here).

Note: the quotation marks surrounding the pattern are important to prevent the glob pattern from being expanded by the shell.

After any invocation of git-lfs-track(1) or git-lfs-untrack(1), you must commit changes to your .gitattributes file. This can be done by running:

$ git add .gitattributes
$ git commit -m "track *.psd files using Git LFS"

You can now interact with your Git repository as usual, and Git LFS will take care of managing your large files. For example, changing a file named my.psd (tracked above via *.psd):

$ git add my.psd
$ git commit -m "add psd"

Tip: if you have large files already in your repository's history, git lfs track will not track them retroactively. To migrate existing large files in your history to use Git LFS, use git lfs migrate. For example:

$ git lfs migrate import --include="*.psd" --everything

For more information, read git-lfs-migrate(1).

You can confirm that Git LFS is managing your PSD file:

$ git lfs ls-files
3c2f7aedfb * my.psd

Once you've made your commits, push your files to the Git remote:

$ git push origin main
Uploading LFS objects: 100% (1/1), 810 B, 1.2 KB/s
# ...
   67fcf6a..47b2002  main -> main

Note: Git LFS requires at least Git 1.8.2 on Linux or 1.8.5 on macOS.


If you've decided that Git LFS isn't right for you, you can convert your repository back to a plain Git repository with git lfs migrate as well. For example:

$ git lfs migrate export --include="*.psd" --everything

Note that this will rewrite history and change all of the Git object IDs in your repository, just like the import version of this command.

If there's some reason that things aren't working out for you, please let us know in an issue, and we'll definitely try to help or get it fixed.


Git LFS maintains a list of currently known limitations, which you can find and edit here.

Git LFS source code utilizes Go modules in its build system, and therefore this project contains a go.mod file with a defined Go module path. However, we do not maintain a stable Go language API or ABI, as Git LFS is intended to be used solely as a compiled binary utility. Please do not import the git-lfs module into other Go code and do not rely on it as a source code dependency.

Need Help?

You can get help on specific commands directly:

$ git lfs help <subcommand>

The official documentation has command references and specifications for the tool. There's also a FAQ on the wiki which answers some common questions.

If you have a question on how to use Git LFS, aren't sure about something, or are looking for input from others on tips about best practices or use cases, feel free to start a discussion.

You can always open an issue, and one of the Core Team members will respond to you. Please be sure to include:

  1. The output of git lfs env, which displays helpful information about your Git repository useful in debugging.
  2. Any failed commands re-run with GIT_TRACE=1 in the environment, which displays additional information pertaining to why a command crashed.


See for info on working on Git LFS and sending patches. Related projects are listed on the Implementations wiki page.

See also for info on how to submit reports of security vulnerabilities.

Core Team

These are the humans that form the Git LFS core team, which runs the project.

In alphabetical order:

@bk2204 @chrisd8088 @larsxschneider
PGP 0223B187 PGP 088335A9 PGP A5795889


These are the humans that have in the past formed the Git LFS core team, or have otherwise contributed a significant amount to the project. Git LFS would not be possible without them.

In alphabetical order:

@andyneff @PastelMobileSuit @rubyist @sinbad @technoweenie @ttaylorr
  • Upgrade workflows to latest Ubuntu and Actions versions

    Upgrade workflows to latest Ubuntu and Actions versions

    We upgrade our CI and release GitHub Actions workflows to use the latest Ubuntu runners, which run Ubuntu LTS 22.04 at present, and the latest available versions of all Actions steps.

    As testing the release.yml workflow is not convenient without generating a release, it has instead been run successfully on a separate, private repository cloned from this one.

    Ubuntu Runners

    In commit d6b34fa4355bd4891294eeb69ff05bb43977f385 of PR #4437 we switched our CI and release GitHub Actions workflows to explicitly use the then-latest Ubuntu LTS version 20.04 in order to support ARM64 builds, as these required a version of Go (specifically 1.16) which was not available on the ubuntu-latest Actions runners at the time because they still ran Ubuntu LTS version 18.04.

    However, ubuntu-latest Actions runners now use an even newer LTS version of Ubuntu, 22.04, than the one we have explicitly identified, so we can return to specifying ubuntu-latest for our CI and release builds.

    Actions and Checkouts

    In PR #5236 we upgraded our CI and release workflows to use the latest recommended ruby/[email protected] GitHub Actions step to install Ruby and its dependencies.

    We now update our other Actions steps to their respective latest versions as well:

      actions/checkout:           v1 -> v3
      actions/download-artifact:  v1 -> v3
      actions/setup-go:           v2 -> v3
      actions/upload-artifact:    v1 -> v3
      docker/setup-qemu-action:   v1 -> v2

    Artifact Download Paths

    As of v2 of the actions/download-artifact Action, downloaded assets are not placed in a new subdirectory created with the name from the step's name argument, but in the current working directory instead. We want to retain the previous behaviour so we add a path argument with the same name as each of the macos-assets and windows-assets download steps.

    Fetching Full Clones

    By default, the actions/checkout Action (as of v2) performs a Git fetch with a --depth=1 option, so a shallow clone is made. As a result, when our Makefile calls git describe HEAD to set its VERSION variable, no tags are available and Git responds with an error message.

    Many of our workflow jobs succeed despite logging that error, including the build-docker and build-docker-cross jobs in both our CI and Release workflows. (The Docker builds create upload artifacts with the valid filenames despite the lack of any tags because they rely on the Git LFS version strings in our debian/changelog file and in our binary; the rpm/build_rpms.bsh script builds a binary just to run git-lfs version and determine the version string from its output.)

    However, our workflow jobs which run the make release command fail outright in the absence of any Git tags, as they search for build artifacts using filenames constructed with the empty VERSION variable, such as When no files are found, the tar command fails, halting the job. This affects both the build-default job in our CI workflow (for Linux and macOS), and all of build-main, build-macos, and build-windows jobs in our Release workflow.

    To resolve this in the case of a PR or other push to a branch, we set a fetch-depth value of 0 for our actions/[email protected] steps, which downloads the full Git history and all tags. This is somewhat more expensive than a shallow clone, but our project's history is not excessively large.

    Temporary Workaround for Incorrect Tag Fetches

    Due to the GitHub Actions bug documented in actions/checkout#882, though, this resolution is insufficient in the case of a push to a tag. At present, when fetch-depth is 0, the actions/che[email protected] incorrectly determines the SHA of an annotated tag to be the SHA of its associated commit, and then proceeds as if the tag had been updated on the server since the Action was started, and so rewrites the tag locally to refer to the commit SHA. This has the effect of making the local tag into a lightweight tag, which git describe then ignores (since we don't pass the --tags option to it).

    As a temporary fix for this problem, we add a step after the actions/[email protected] step which updates the local tag again to match the remote one. We only run this step when the pushed reference was a tag, because on a branch push it would fail as Git would refuse to update the currently checked-out branch. In our Release workflow, since it only runs on pushes to tags, we can run this step unconditionally. (We could also continue to use the default fetch-depth of 1 for the actions/[email protected] step, since we always subsequently fetch the relevant tag, but to be consistent and to avoid future issues once actions/checkout#882 is fixed upstream, we do not do so.)

    /cc actions/checkout#882 /cc #5228

    opened by chrisd8088 0
  • TCP Congestion Control disproportionately affects git-lfs

    TCP Congestion Control disproportionately affects git-lfs

    Describe the bug When uploading on an unreliable/congested link (e.g., crowded WiFi) upload speeds are horrendous (30 kbytes per second) but when on a reliable link (e.g., wired, even on the same network) upload speeds are comparable to link speed.

    More specifically, TCP retransmissions or out-of-order ACKs can prevent git-lfs from functioning at any theoretical speed. However, other software, such as curl, web browsers, etc, function just fine and can reach near link speed with even worse packet retransmissions or out-of-order ACKS.

    To Reproduce Steps to reproduce the behavior:

    1. Put wifi network on a crowded channel. You should see TCP retransmissions in Wireshark for web browsing traffic.
    2. Add a large file to git-lfs.
    3. Push file to git-lfs.
    4. See extremely low speeds.

    Expected behavior Git-LFS should be minimally affected by TCP congestion control.

    System environment Linux/WSL/Bare Metal

    Output of git lfs env N/A

    Additional context

    I haven't gone into how the sockets are created, but if I had to guess, the code is not using the Nagle Algorithm (TCP_NODELAY utilized).

    opened by withinboredom 5
  • Clean up RPM builds and fix i686 RPM file names

    Clean up RPM builds and fix i686 RPM file names

    This PR cleans up various issues with our RPM build scripts, in particular removing leftover support for CentOS 5 and 6, and moving responsibility for building 32-bit RPMs into this project so as to fix a naming problem with the 32-bit RPMs for CentOS 8 and Rocky Linux 9.

    Reviewing this PR commit-by-commit is recommended, and each commit should have a full description of its changes.

    We expect to merge this PR prior to when its companion PR git-lfs/build-dockers#54 is merged, specifically because that PR drops its own build logic for 32-bit RPMs in deference to this project building those RPMs at the same time as the 64-bit ones and in the same context.

    This PR's changes have been tested in conjunction with those of PR git-lfs/build-dockers#54 and confirmed to produce valid build artifacts. We used a branch of git-lfs/git-lfs with the changes from this PR plus revisions to the GitHub Actions workflows so as to use the branch from PR git-lfs/build-dockers#54 and then to upload the resultant artifacts to GitHub Actions. These can be examined to confirm that they now correctly name the 32-bit RPM builds for CentOS 8 and Rocky Linux 9 and that they also include only Git LFS packages and no unrelated ones:


    Building 32-Bit RPMs

    In commit c2d25ee6b6d89425cf39dbc3be7a215d3d0fc050 of PR #511 we added support for building RPM packages for 32-bit platforms by updating the docker/centos_script.bsh script which was present at that time to call rpmbuild with a --target=i686 argument.

    Since commit 56ffe420b787ba2f738287e07d6af9f177e51b4f of PR #555 both that script and the rpm/build_rpms.bsh script contained the same logic to parse the OS name and version in order to set a short suffix for the RPM filenames.

    However, the docker/centos_script.bsh script was subsequently moved into the git-lfs/build-dockers repository, where it has not been updated to match the rpm/build_rpms.bsh script, such as when parsing of the OS major version was added in commit e93940960ee0e1749a2de6616150cd10061b18e2 of PR #5054, which allows us to properly parse the version number on CentOS/Rocky Linux 8 and above, or when parsing of the Rocky Linux OS name was added in commit 723be34bd0e9802c0dc5fa728edf86cc16bc62b0 of PR #5144.

    The result is that at present we build 32-bit RPMs for CentOS 8 and Rocky Linux 9 (el8 and el9, respectively) without the platform short name suffix in their filenames, e.g., git-lfs-3.3.0-1.i686.rpm and git-lfs-3.3.0-1.i686.rpm (instead of git-lfs-3.3.0-1.el9.i686.rpm and git-lfs-3.3.0-1.el8.i686.rpm), and then upload them to Packagecloud with those names.

    To resolve this problem and avoid later regressions between the two sets of parsing logic, we add an rpmbuild command with the --target=i686 argument for 32-bit packages to the rpm/build_rpms.bsh script of this repository, which ensures they will be built with the same context as our 64-bit packages.

    We therefore also remove the rpmbuild command with the --target=i686 argument from the centos_script.bsh script in the git-lfs/build-dockers repository, in commit git-lfs/[email protected]7074355a21d22e0fa06149 of PR git-lfs/build-dockers#54.

    Removing Substitute Repository Cleanup Script

    Since the original introduction of support for building CentOS RPMs in commit 4a7162777913489e7c70a3da3235dcd3eeec553b of PR #332, an rpm/clean.bsh script has been provided to perform the equivalent of a git clean -xdf command on the Git repository from which we build Git LFS.

    However, this script is no longer needed as all of the CentOS and Rocky Linux container image builds defined by the git-lfs/build-dockers repository's Dockerfiles have a native Git package installed (or a recent Git built, in the case of CentOS 7), so we remove the only use of it, in commit git-lfs/[email protected] of PR git-lfs/build-dockers#54, and can therefore also drop the script from this repository as well.

    Removing CentOS 5 and 6 Build Steps

    We no longer support either CentOS 5 or 6, per commit b560b853a6e557195c0c68875218f45c89dce56b of PR #1298 and commit git-lfs/[email protected] of PR git-lfs/build-dockers#3, and commit git-lfs/[email protected] of PR git-lfs/build-dockers#33.

    We also now build the asciidoctor Ruby gem in order to generate our man pages, rather than using ronn and several other gems, per commit db9a82132a2bb066876d8ddf06c5255da2f199a4 of PR #5054.

    As a result, we can eliminate a number of build steps which only operated on systems that lacked native package manager support for Go, Git 2.x, Ruby 3.x, etc., as well as steps pertaining to the Ruby gem dependencies required for the ronn gem.

    opened by chrisd8088 0
  • Unset `GIT_TRACE` environment variable for Git commands in `Makefile`

    Unset `GIT_TRACE` environment variable for Git commands in `Makefile`

    In commit c4874df619276c807772bae6e62d9cb9718a7077 of PR #971 the script/cibuild script was revised to run the Go test suite just for our git Go package in order to confirm that we do not leak the GIT_TRACE environment variable to Git itself when it is set.

    Later, in commit 2235198650d8dfadded525cc308ae8dfa786da52 of PR #3144, our Makefile was updated to start by running some Git commands (git describe and git rev-parse) to determine the current tagged version of the project.

    When GIT_TRACE=1 is set in second run of the Go test suite, these initial Git command output Git trace log lines, which does not affect the validity of the second Go test of our git package but does add some noise to the output of the script/cibuild script, for example:

    09:53:27.393455 git.c:460               trace: built-in: git describe HEAD
    09:53:27.395241 git.c:460               trace: built-in: git describe HEAD
    09:53:27.396926 git.c:460               trace: built-in: git describe HEAD
    09:53:27.398577 git.c:460               trace: built-in: git describe HEAD
    09:53:27.400339 git.c:460               trace: built-in: git describe HEAD
    09:53:27.401985 git.c:460               trace: built-in: git describe HEAD
    09:53:27.403613 git.c:460               trace: built-in: git describe HEAD
    09:53:27.405334 git.c:460               trace: built-in: git describe HEAD
    09:53:27.406941 git.c:460               trace: built-in: git describe HEAD
    09:53:27.408580 git.c:460               trace: built-in: git describe HEAD
    09:53:27.410234 git.c:460               trace: built-in: git describe HEAD
    09:53:27.411866 git.c:460               trace: built-in: git describe HEAD
    09:53:27.413598 git.c:460               trace: built-in: git describe HEAD
    09:53:27.415249 git.c:460               trace: built-in: git describe HEAD
    09:53:27.416936 git.c:460               trace: built-in: git describe HEAD
    09:53:27.418578 git.c:460               trace: built-in: git describe HEAD
    09:53:27.420260 git.c:460               trace: built-in: git describe HEAD
    09:53:27.421917 git.c:460               trace: built-in: git describe HEAD
    09:53:27.423583 git.c:460               trace: built-in: git describe HEAD
    09:53:27.425375 git.c:460               trace: built-in: git describe HEAD
    09:53:27.427019 git.c:460               trace: built-in: git describe HEAD
    09:53:27.428662 git.c:460               trace: built-in: git describe HEAD
    09:53:27.430298 git.c:460               trace: built-in: git describe HEAD
    09:53:28.605350 git.c:460               trace: built-in: git rev-parse --short HEAD
    GOOS= GOARCH= go build -ldflags="-X -s -w " -gcflags=" " -trimpath -o ./bin/git-lfs ./git-lfs.go
    ok	0.546s

    We therefore just unset the GIT_TRACE environment variable for these two Git commands in our Makefile.

    opened by chrisd8088 0
  • Add `git lfs migrate export` command examples to manual page

    Add `git lfs migrate export` command examples to manual page

    We add several examples of the use of the git lfs migrate export subcommand to the git-lfs-migrate(1) manual page, showing use of both the --include option and the --remote option.

    /cc @axkibe /cc

    opened by chrisd8088 0
  • git rev-parse exit status 128

    git rev-parse exit status 128

    I try to install the git lfs with $ git lfs install

    but i get this error:

    Error: Failed to call git rev-parse --git-dir: exit status 128

    Version: git-lfs/2.9.2 (GitHub; linux arm64; go 1.13.5)

    opened by davekds 2
  • v3.3.0(Nov 30, 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 fixed 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 fixing 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 fixing 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 fixing a long-standing bug with git lfs migrate import


    • Add the FAQ in the repository #5167 (@bk2204)
    • Add support for Rocky Linux 9 #5144 (@bk2204)
    • push: add ability to read refs/oids from stdin #5086 (@rcoup)
    • Allow alternative remotes to be handled by LFS #5066 (@srohmen)
    • Switch documentation to AsciiDoc #5054 (@bk2204)


    • Handle macro attribute references with unspecified flag #5168 (@chrisd8088)
    • Fixed broken link for git-lfs-migrate #5153 (@dhiwakarK)
    • ssh: disable concurrent transfers if no multiplexing #5136 (@bk2204)
    • Fix setting commit & vendor variables via make #5141 (@rcoup)
    • ssh: don't leak resources when falling back to legacy protocol #5137 (@bk2204)
    • Bump gitobj to v2.1.1 #5130 (@bk2204)
    • tools: don't match MINGW as Cygwin #5106 (@bk2204)
    • installer: handle BashOnly Git for Windows gracefully #5048 (@dscho)
    • Change git-lfs migrate import --everything to migrate everything except for special git refs #5045 (@wuhaochen)


    • Use --sparse parameter for ls-files for performance optimization #5187 (@Leo1690)
    • Add information to ambiguous error message. #5172 (@WhatTheFuzz)
    • Distro update for v3.3.0 #5169 (@bk2204)
    • docs/man: clarify Git LFS setup instructions #5166 (@larsxschneider)
    • Update more stale comments relating to object scanning #5164 (@chrisd8088)
    • Update stale comments relating to object scanning and uploading #5163 (@chrisd8088)
    • script/cibuild: exclude icons from whitespace check #5142 (@bk2204)
    • Update to Go version 1.19 #5126 (@chrisd8088)
    • Drop vendoring #4903 (@bk2204)
    • Adding #5079 (@pratap043)
    • t: set init.defaultBranch #5082 (@bk2204)
    • go.mod: require v3.0.1 #5033 (@bk2204)
    • script/upload: improve readability of asset verification #5032 (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 7/CentOS 7 RPM RHEL 8/Rocky Linux 8 RPM RHEL 9/Rocky Linux 9 Debian 10 Debian 11

    SHA-256 hashes: 22e330e37fb3a0383c98aa98d3c443f401bfe97b369d4b5e2f4d2d2859fdd0b2 d9cc8219e04eea6e660c11f1119074575250ac661bde0a299e37e35d89cba365

    git-lfs-freebsd-386-v3.3.0.tar.gz 9e2cc6c99b648b324497b4dab40f68d01feb5823111bff98c79e6a1de53a0222

    git-lfs-freebsd-amd64-v3.3.0.tar.gz b29d0c79eda865eccc5f7dd13385ce32215de2487f04186ed3a1ae7dce4a42dc

    git-lfs-linux-386-v3.3.0.tar.gz 14415ebafc3ace60f178cd69d4f2e0ed42dbbf32cb2aba80e46ec3c8f7c1401f

    git-lfs-linux-amd64-v3.3.0.tar.gz 6a4e6bd7d06d5c024bc70c8ee8c9da143ffc37d2646e252a17a6126d30cdebc1

    git-lfs-linux-arm-v3.3.0.tar.gz df8b24cf7ff6a2f105dd1a3d0a4990c53980272ea94da67d854921e21bc5444c

    git-lfs-linux-arm64-v3.3.0.tar.gz e97c477981a9b6a40026cadc1bf005541d973fc32df2de2f398643b15df6b5c6

    git-lfs-linux-ppc64le-v3.3.0.tar.gz 32a22e5496a8c8028e5c8193fd5941a0acae800d65296f09901237f1e2146a79

    git-lfs-linux-s390x-v3.3.0.tar.gz 266e0efd3c790003bbbf31156d471e832b9fb27dda6968e56aca2a669d01e245

    git-lfs-v3.3.0.tar.gz 964c200bb7dcd6da44cbf0cfa88575f7e48d26925f8ec86d634d3f83306a0920 81fd4b01719e1e0ccf347596293f19a07fba8573c6aee1e1521b2932d9b6179d 1df5874f22c35c679159f0aaf9e24333051f52768eade0204d22200b79141743 cf16b91ba10009b98bd641897609d9fd6994941705435aac60d12938322fbdbe

    git-lfs-windows-v3.3.0.exe 81b28b59a100ab5023e62e7bc99e25c33fadf2e106a8c3a36f535b05e52dd76b

    hashes.asc 50ca3a33d866ef72623b36162317d2547a37ae18cd03a10507c9e6e476982ac0

    sha256sums.asc e1c0b69c674d14d1936baf41f4f21d1245d73acf56d1f2965532ea4e09d74161

    Source code(tar.gz)
    Source code(zip) MB) MB)
    git-lfs-freebsd-386-v3.3.0.tar.gz(4.34 MB)
    git-lfs-freebsd-amd64-v3.3.0.tar.gz(4.54 MB)
    git-lfs-linux-386-v3.3.0.tar.gz(4.35 MB)
    git-lfs-linux-amd64-v3.3.0.tar.gz(4.54 MB)
    git-lfs-linux-arm-v3.3.0.tar.gz(4.30 MB)
    git-lfs-linux-arm64-v3.3.0.tar.gz(4.16 MB)
    git-lfs-linux-ppc64le-v3.3.0.tar.gz(4.10 MB)
    git-lfs-linux-s390x-v3.3.0.tar.gz(4.46 MB)
    git-lfs-v3.3.0.tar.gz(640.76 KB) MB) MB) MB)
    git-lfs-windows-v3.3.0.exe(9.86 MB)
    hashes.asc(19.01 KB)
    sha256sums.asc(2.27 KB)
  • v3.2.0(May 25, 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 fixing the formatting in our manual pages
    • @breyed for fixing a typo in our manual pages
    • @btoll for improving our README
    • @rcoup for fixing our Accept header syntax
    • @vtbassmatt for documenting our deprecation of NTLM


    • ls-files: add a --json option #5007 (@bk2204)
    • Add --json output for git lfs track #5006 (@bk2204)
    • Add a merge driver #4970 (@bk2204)
    • lfs: don't write hooks when they haven't changed #4935 (@bk2204)
    • Tarballs, not tarbombs #4980 (@bk2204)


    • Apply several Makefile fixes for Windows #5016 (@bk2204)
    • git: don't panic on pkt-line without equals #4982 (@bk2204)
    • lfshttp: fix invalid Accept header syntax #4996 (@rcoup)
    • Grammar fix #4981 (@breyed)
    • Use gitignore-style path matching for additional commands #4951 (@chrisd8088)
    • Avoid pruning when identical files both match and do not match lfs.fetchexclude #4973 (@chrisd8088)
    • Apply lfs.fetchexclude filter to previous commits when pruning #4968 (@chrisd8088)
    • Update and correct several error message strings #4943 (@chrisd8088)
    • script/upload: correct RHEL 8 package repo #4936 (@bk2204)
    • lfs: add old hook content to the list of old hooks #4878 (@bk2204)
    • .github/workflows: install packagecloud gem #4873 (@bk2204)


    • Update distros for #5010 (@bk2204)
    • lfshttp: log the Negotiate error on failure #5000 (@bk2204)
    • Build CI on Windows 2022 #4997 (@chrisd8088)
    • workflows: use ronn-ng #4992 (@bk2204)
    • Multiple hash support #4971 (@bk2204)
    • note deprecation of NTLM #4987 (@vtbassmatt)
    • Update to Go 1.18, drop older Go version support, and update modules and dependencies #4963 (@chrisd8088)
    • Update tests to check prune command excludes lfs.fetchexclude paths #4964 (@chrisd8088)
    • Add test to check prune command retains tagged unpushed objects #4962 (@chrisd8088)
    • Adjust test helpers and tests related to path filtering #4960 (@chrisd8088)
    • Include shell path in restricted PATH in credential helper path test #4959 (@chrisd8088)
    • Build test helper commands with .exe file extension on Windows #4954 (@chrisd8088)
    • Update Windows signing certificate SHA hash in Makefile #4946 (@chrisd8088)
    • remove unused Pipe[Media]Command() functions #4942 (@chrisd8088)
    • Makefile: remove legacy trimpath code #4938 (@bk2204)
    • add Inno Setup check of Git install paths and remove old uninstaller checks #4925 (@chrisd8088)
    • note git lfs push --all only pushes local refs in man page #4898 (@chrisd8088)
    • Build man pages into per-section subdirectories #4890 (@chrisd8088)
    • Call out destructive command in README #4880 (@btoll)
    • Improve formatting #4863 (@bbodenmiller)
    • docs/howto: remind core team member to check Actions workflows #4868 (@bk2204)
    • .github: fix syntax error in release workflow #4866 (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 9 Debian 10 Debian 11

    SHA-256 hashes: c48c6a0c21d6fd286e54154fedae109bca9886caf520336cbdbbde1f209d8aff bf0fbe944e2543cacca74749476ff3671dff178b5853489c1ca92a2d1b04118e

    git-lfs-freebsd-386-v3.2.0.tar.gz 66ca0f662eeaefa2c191577f54d7d2797063f7f4e44c9130cf7186d8372df595

    git-lfs-freebsd-amd64-v3.2.0.tar.gz 776b41b526f1c879b2a106780c735f58c85b79bf97a835140d4c1aefc8c935b6

    git-lfs-linux-386-v3.2.0.tar.gz 73895460f9b3e213d10fb23948680681ab3e5f92e2fb0a74eb7830f6227a244e

    git-lfs-linux-amd64-v3.2.0.tar.gz d6730b8036d9d99f872752489a331995930fec17b61c87c7af1945c65a482a50

    git-lfs-linux-arm-v3.2.0.tar.gz 3273b189fea5a403a2b6ab469071326ae4d97cb298364aa25e3b7b0e80340bad

    git-lfs-linux-arm64-v3.2.0.tar.gz 8186f0c0f69c30b55863d698e0a20cf79447a81df006b88221c2033d1e893638

    git-lfs-linux-ppc64le-v3.2.0.tar.gz ff1eeaddde5d964d10ce607f039154fe033073f43b8ff5e7f4eb407293fe1be3

    git-lfs-linux-s390x-v3.2.0.tar.gz 16556f0b2e1097a69e75a6e1bcabfa7bfd2e7ee9b02fe6e5414e1038a223ab97

    git-lfs-v3.2.0.tar.gz f8e6bbe043b97db8a5c16da7289e149a3fed9f4d4f11cffcc6e517c7870cd9e5 68d525f70d9bdb1e9e64c3fe156c2164739ee4990a2fb37bd9f101d59cd43a61 c2ee1f7b22d98f614cab94e1033052143f4dbf1207c09ce57e9390acc4bbf86e dda85631f931ea0d2edaf8ef922bed5cb2c60f83ac6d741c16159495e59a2ea4

    git-lfs-windows-v3.2.0.exe f45b3cc1f3b4d1941487f305a1db3730cc57f4cd9c199492ac3138188734238c

    hashes.asc bdf14b5b9bd8fc3da998578a16b6dd5340b62670ce03a4358186ae1a085b051c

    sha256sums.asc 2281d58e4bda0274e2b2d578994de8d460b9d26122e1273f174f65c587b904db

    Source code(tar.gz)
    Source code(zip) MB) MB)
    git-lfs-freebsd-386-v3.2.0.tar.gz(4.04 MB)
    git-lfs-freebsd-amd64-v3.2.0.tar.gz(4.24 MB)
    git-lfs-linux-386-v3.2.0.tar.gz(4.04 MB)
    git-lfs-linux-amd64-v3.2.0.tar.gz(4.24 MB)
    git-lfs-linux-arm-v3.2.0.tar.gz(4.01 MB)
    git-lfs-linux-arm64-v3.2.0.tar.gz(3.88 MB)
    git-lfs-linux-ppc64le-v3.2.0.tar.gz(3.74 MB)
    git-lfs-linux-s390x-v3.2.0.tar.gz(4.10 MB)
    git-lfs-v3.2.0.tar.gz(3.11 MB) MB) MB) MB)
    git-lfs-windows-v3.2.0.exe(9.57 MB)
    hashes.asc(19.01 KB)
    sha256sums.asc(2.27 KB)
  • v3.1.4(Apr 19, 2022)

    This release is a bugfix release to fix some problems during the build of v3.1.3. There are otherwise no substantial changes from v3.1.3.


    • Use only Windows Server 2019 runners for CI in GitHub Actions #4883 (@chrisd8088)
    • remove unused Pipe[Media]Command() functions #4942 (@chrisd8088)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 9 Debian 10 Debian 11

    SHA-256 hashes: c273f08aec1e47df88597396f6216dc103f57c6357b02f1fae3692904b666671 1b6e1c20ac02b0a11d6a050785a08e9976a9669057fdabefb542730c7c9d2fdd

    git-lfs-freebsd-386-v3.1.4.tar.gz 4f218ceae2d8b8966cbc49f38a2be78e0fe23c2e90bbcb079afda0051bf5f653

    git-lfs-freebsd-amd64-v3.1.4.tar.gz 9472d5e137e3497f835592c4efe948d2831233e72992703f392b0ee6f5d373e2

    git-lfs-linux-386-v3.1.4.tar.gz 1ded175d5aa307f01080fb5ba84ae0ab75665adc933cb1f8178cbbde537a5595

    git-lfs-linux-amd64-v3.1.4.tar.gz f97f3e40261d872a246f6fb2c96adf132f96c1428f70b4d0e5a644f98481fb76

    git-lfs-linux-arm-v3.1.4.tar.gz bc4026580aa9efbdfabd4361b8739ace02364245a9797988a875fe2b1c17d376

    git-lfs-linux-arm64-v3.1.4.tar.gz c44b4070693f2e8eface24b6b2d5915e6cb1a6dd243e8c1cfcaa72ffe702ee56

    git-lfs-linux-ppc64le-v3.1.4.tar.gz a3d41734cfafcdee67d38ff1b26f9c0e9acf5f140557dfa1e2ea0177c8bb514b

    git-lfs-linux-s390x-v3.1.4.tar.gz d728d6322f8ad6d9d108aa1ed132ce94a127f48252e8f26cca3a00bb38eb3e7d

    git-lfs-v3.1.4.tar.gz d7bfeb6f4c219c44773da4f93da28eb1e2e654efa4cd23294d9039247d8cde64 86ecf57cf47abfd63f1788005ee69f366ce6325ad2f720ee68efd4ac33e26057 76c27740e41b7bce35d8504357dd2962042a821b40a6df7d0dd4184ae7d7839f a179f336c2e1eba646dbdb19c660810d1748b27e655b097d2335c98e3ef908f3

    git-lfs-windows-v3.1.4.exe 02e5101300a8ad5d0fbefbe63244239240e067b567929a22bbdf7363fd262e8b

    sha256sums.asc c37ca414f707506644a5c944a4ba4efffd1afe21def60b197b4b6c58ae9dc0a4

    Source code(tar.gz)
    Source code(zip) MB) MB)
    git-lfs-freebsd-386-v3.1.4.tar.gz(3.74 MB)
    git-lfs-freebsd-amd64-v3.1.4.tar.gz(4.11 MB)
    git-lfs-linux-386-v3.1.4.tar.gz(3.75 MB)
    git-lfs-linux-amd64-v3.1.4.tar.gz(4.05 MB)
    git-lfs-linux-arm-v3.1.4.tar.gz(3.73 MB)
    git-lfs-linux-arm64-v3.1.4.tar.gz(3.73 MB)
    git-lfs-linux-ppc64le-v3.1.4.tar.gz(3.58 MB)
    git-lfs-linux-s390x-v3.1.4.tar.gz(3.91 MB)
    git-lfs-v3.1.4.tar.gz(3.10 MB) MB) MB) MB)
    git-lfs-windows-v3.1.4.exe(9.22 MB)
    sha256sums.asc(2.27 KB)
  • v3.1.2(Feb 16, 2022)

    This is a bugfix release which fixes a bug in git lfs install and some issues in our CI release processes, including one that prevented arm64 packages for Debian 11 from being uploaded.


    • lfs: add old hook content to the list of old hooks #4878 (@bk2204)


    • Revert "Merge pull request #4795 from bk2204/actions-checkout-v2" #4877 (@bk2204)
    • .github/workflows: install packagecloud gem #4873 (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 9 Debian 10 Debian 11

    SHA-256 hashes: d775d887bf7253a12ae296414052acbd3ac05b9d3c8c4b1f39288f096fe31741 07bf88d52fd12457ab535768ff145022de419fab2ec8af08fe3d33136508eeae

    git-lfs-freebsd-386-v3.1.2.tar.gz cdb50654274e63865216076fc203b57e009ff4d3c51f2f295f693a7e58cbf269

    git-lfs-freebsd-amd64-v3.1.2.tar.gz cafcc27d3f8b6192dde01585f592f4f1766b78bb98e8c5e73342dc3f18f55997

    git-lfs-linux-386-v3.1.2.tar.gz 5fe6c7cf76a218e2e0bbb8c34344981a5cb77774bbb99d1e8986e0967d061015

    git-lfs-linux-amd64-v3.1.2.tar.gz a10bb562658a65ad0e22f331bc43f2cb292a57d21c5b26f52794257e48fcbe10

    git-lfs-linux-arm-v3.1.2.tar.gz cbe2c3e2effa7b168876c9104247f4c5328abadf4a2e3019707510255e7bf46a

    git-lfs-linux-arm64-v3.1.2.tar.gz c6152c4e24e0575396ee80be8049bf258659fec552f81b410705beed25712ba0

    git-lfs-linux-ppc64le-v3.1.2.tar.gz eb42511019b6c4dc98bbb2834e17fb69d9618e3a53a114bb5420fd3a071f69bc

    git-lfs-linux-s390x-v3.1.2.tar.gz a83dfa73f310186ff841d7560c8a23717709da43229f471270b7ac6139202528

    git-lfs-v3.1.2.tar.gz 5c9bc449068d0104ea124c25f596af16da85e7b5bf256bc544d8ce5f4fe231f2 b11faa65dc80291b072e340c8e2fd9301ab1051e9081fed4057b23acad440f5a 9423bf0fd1b0bde8ded9e040793b5b23ed916cd99f29415abb41d3fe321bbce4 3a561009f97d7746523f2543187ed677be7afa02f2c271c4eec0c92dacfe05c9

    git-lfs-windows-v3.1.2.exe 85fd933edf5e0cb54474c9c04c91675e58fb8efa2daf9a5f5173584016731173

    sha256sums.asc c6234f20b7fd4057f3725d9a36d9c0445125ddd43ca52a978181bc5207c129bd

    Source code(tar.gz)
    Source code(zip) MB) MB)
    git-lfs-freebsd-386-v3.1.2.tar.gz(3.74 MB)
    git-lfs-freebsd-amd64-v3.1.2.tar.gz(4.11 MB)
    git-lfs-linux-386-v3.1.2.tar.gz(3.75 MB)
    git-lfs-linux-amd64-v3.1.2.tar.gz(4.05 MB)
    git-lfs-linux-arm-v3.1.2.tar.gz(3.72 MB)
    git-lfs-linux-arm64-v3.1.2.tar.gz(3.73 MB)
    git-lfs-linux-ppc64le-v3.1.2.tar.gz(3.57 MB)
    git-lfs-linux-s390x-v3.1.2.tar.gz(3.90 MB)
    git-lfs-v3.1.2.tar.gz(3.10 MB) MB) MB) MB)
    git-lfs-windows-v3.1.2.exe(9.21 MB)
    sha256sums.asc(2.27 KB)
  • v3.1.1(Feb 14, 2022)

    This is a bugfix release which fixes a syntax error in the release workflow.


    • .github: fix syntax error in release workflow #4866 (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 9 Debian 10 Debian 11

    SHA-256 hashes: f67fd6f2c8e997f2a0cb5ee889d47e02c0775ed27069fb8933656b9d083f0ca3 3f8106e434d4a3233dbb3fe8ce7f81eb119a05c5be374e298bb59d11c79bb062

    git-lfs-freebsd-386-v3.1.1.tar.gz d67aadb59f47ff178ffc9defbc601139548e747b988b42875ca9f89bdc1d1a54

    git-lfs-freebsd-amd64-v3.1.1.tar.gz 90bc1704417fd8cb6bd6a63612f43d89d7ea568bdf49015db6cc03436888325c

    git-lfs-linux-386-v3.1.1.tar.gz 7cc18d05fd5375498fa15c0c39c78cdecdca35cfee1695342e2ff56642b4d819

    git-lfs-linux-amd64-v3.1.1.tar.gz fcc676de982336fd7542c62e58a93bc21291ef2e33659a23148e1b466b198bd4

    git-lfs-linux-arm-v3.1.1.tar.gz 51017aa18e068123fc02b4936aba748f177d4fcbbcefadd087c6f48e4cce1a71

    git-lfs-linux-arm64-v3.1.1.tar.gz 210ba88ff605c2520967b3e2683fa1edf2cd07016ca0134f5571e5d53c0341c0

    git-lfs-linux-ppc64le-v3.1.1.tar.gz 50414276b04184fbe38d16dd82233d59129d415843be753dd0fe2e40478b2260

    git-lfs-linux-s390x-v3.1.1.tar.gz d2de9a159cfd77ea2b3161b5ff3b511607e57511dc1c130c28b0890267522879

    git-lfs-v3.1.1.tar.gz 668147fabf314d32b86ff1fe921155cd899621b24eed212bf4a3a80e440eb8db d5210afcfd15ae89469471df820cb7a3e5db47dee3ede570c6bbc2c838f36bd3 b8d4cbc2a6654cd3fa2fb430dec7f29a56b6dc49158f7d9c7a2d4ff3f0d0ddaf d7d42ee96b2625e5d6dddb9a56be1337ef0ff00f6ec3458070848cbe608ff68f

    git-lfs-windows-v3.1.1.exe 43af4ec4c2fdaa05083bd2e7ad31e062c39d1138fdee1faf500cd93d96e71afa

    sha256sums.asc 4302e3ac341fa978480eb33c01f9a994f0f73c55e2b897fa7ea40d2fd573d872

    Source code(tar.gz)
    Source code(zip) MB) MB)
    git-lfs-freebsd-386-v3.1.1.tar.gz(3.74 MB)
    git-lfs-freebsd-amd64-v3.1.1.tar.gz(4.11 MB)
    git-lfs-linux-386-v3.1.1.tar.gz(3.75 MB)
    git-lfs-linux-amd64-v3.1.1.tar.gz(4.05 MB)
    git-lfs-linux-arm-v3.1.1.tar.gz(3.72 MB)
    git-lfs-linux-arm64-v3.1.1.tar.gz(3.72 MB)
    git-lfs-linux-ppc64le-v3.1.1.tar.gz(3.57 MB)
    git-lfs-linux-s390x-v3.1.1.tar.gz(3.90 MB)
    git-lfs-v3.1.1.tar.gz(3.10 MB) MB) MB) MB)
    git-lfs-windows-v3.1.1.exe(9.21 MB)
    sha256sums.asc(2.27 KB)
  • v3.0.2(Oct 28, 2021)

    This release is a bugfix release which fixes a variety of problems seen since 3.0.0, including problems with empty files, git lfs fsck --pointers, and the testsuite.

    We would like to extend a special thanks to the following open-source contributors:

    • @fh1ch for patches to make things work better on Alpine Linux
    • @pyckle for fixing our handling of filenames in git lfs migrate import
    • @ycongal-smile for fixing git lfs migrate import with similarly named files


    • Fix two types of misdetection in git lfs fsck #4697 (@bk2204)
    • lfs: don't flag non-LFS files as invalid pointers #4691 (@bk2204)
    • git: honor GIT_OBJECT_DIRECTORY #4686 (@bk2204)
    • migrate: properly escape blob filenames #4683 (@pyckle)
    • ls-files: don't process empty files as pointers #4681 (@bk2204)
    • Call migrate() BlobFn on every blob #4671 (@ycongal-smile)
    • Correct t-lock regular expression to be musl compatible #4673 (@fh1ch)


    • Allow git-lfs-transfer integration tests to be skipped #4677 (@fh1ch)
    • Make CI environment GIT prefix grep more specific #4678 (@fh1ch)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 9 Debian 10 Debian 11

    SHA-256 hashes: 982df1f2a3f59248c064f486083570794b4cf01c93c68258bfc9a6840f32ccd3 1cec3035624ec61e91913b4160c9a0bd9c8111811a8d5a7c6795fb6a3845bf47

    git-lfs-freebsd-386-v3.0.2.tar.gz 3652ba6542e55017336255b110c829028e2cde764ab87fd077e17dd29510fcc7

    git-lfs-freebsd-amd64-v3.0.2.tar.gz fcace094a7c1ce12cbd259e34dcfe5ce03ece1e3aabeef2a8ddbc8f5dc099a95

    git-lfs-linux-386-v3.0.2.tar.gz fa5a60aec89ccd072fbf27b2016ca38f0754e78b84335788d00ab33134bad6ca

    git-lfs-linux-amd64-v3.0.2.tar.gz 796f5ea0259eabe57f94a8ad1bb0d46806168df30b135a65d88f8a7ee1409e0b

    git-lfs-linux-arm-v3.0.2.tar.gz 1e9981c3870bdf10a44fd5e28c1283f0218487ffeb4ba1bca9d04195ca769d87

    git-lfs-linux-arm64-v3.0.2.tar.gz a3e54ade67f6c588c67231d7eae96764750dd97dc479f756b06365dfdb33e364

    git-lfs-linux-ppc64le-v3.0.2.tar.gz 61d6cda4d445c03212997b41cfc402c0c3ea716e432a750c1433d4e99e9ba822

    git-lfs-linux-s390x-v3.0.2.tar.gz c6ddc7f271a754f97e9890533aedb7ffbebbe1427ae5f32cc9cde906e03c70db

    git-lfs-v3.0.2.tar.gz 7179a357a0d0e7beaba217489f7f784ca8717035a5e3f1ee91ca7193ba3a35f3 d22a17621b08f716832ad752695dfce57ccf72a339eba8b4d89ff236bd7621e8 c8cdf273554262667c2f88f3e8f54c1e3c54230c20bd7d6f8917aaf97ee85d7f d5fe84d1bc8b88ddd482815e380cd5095fc5272064b4f409942749678cafec92

    git-lfs-windows-v3.0.2.exe 4d26a4963ea77df6c041c92797b333fb47084e9127df0a43d12b2f2c39793408

    sha256sums.asc 1970d6da514db82e5d38229dceaea25f5dd6211439a55e76df041e0551515b2c

    Source code(tar.gz)
    Source code(zip) MB) MB)
    git-lfs-freebsd-386-v3.0.2.tar.gz(3.59 MB)
    git-lfs-freebsd-amd64-v3.0.2.tar.gz(3.94 MB)
    git-lfs-linux-386-v3.0.2.tar.gz(3.59 MB)
    git-lfs-linux-amd64-v3.0.2.tar.gz(3.87 MB)
    git-lfs-linux-arm-v3.0.2.tar.gz(3.57 MB)
    git-lfs-linux-arm64-v3.0.2.tar.gz(3.57 MB)
    git-lfs-linux-ppc64le-v3.0.2.tar.gz(3.42 MB)
    git-lfs-linux-s390x-v3.0.2.tar.gz(3.73 MB)
    git-lfs-v3.0.2.tar.gz(2.98 MB) MB) MB) MB)
    git-lfs-windows-v3.0.2.exe(8.85 MB)
    sha256sums.asc(2.27 KB)
  • v3.0.1(Sep 28, 2021)

    This release is a bugfix release which fixes the Windows ARM64 build process and addresses a regression in support for empty files in pull and fetch.

    We would like to extend a special thanks to the following open-source contributors:

    • @dennisameling for fixing support for Windows on ARM64


    • Fix Windows arm64 release #4647 (@dennisameling)
    • fs: specify a file as existing if it's empty #4654 (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 9 Debian 10 Debian 11

    SHA-256 hashes: ce5d0186ae9011859012ba149d691f70b38e75106143aa4675f050d2ac1ca231 34e2b395bc67dbe280b9fbed99cb6406b12ff0b95e2a7fbe89dc3ccc58c30d9c

    git-lfs-freebsd-386-v3.0.1.tar.gz 1d365ae3004cbe068552e6aa2ee3635b7e1128128314f6b72a84ea700025fe90

    git-lfs-freebsd-amd64-v3.0.1.tar.gz dcc8814b0e8dbe8d598655f8f75d5c2c906b2a12af6d6646eca52133671f0b1e

    git-lfs-linux-386-v3.0.1.tar.gz 726cf50c7a32fbf40ebb8e4d1281ad2f0e0f6e6a94804e1e0601b007471e39d4

    git-lfs-linux-amd64-v3.0.1.tar.gz 29706bf26d26a4e3ddd0cad02a1d05ff4f332a2fab4ecab3bbffbb000d6a5797

    git-lfs-linux-arm-v3.0.1.tar.gz 657a089eb79e60844c7995a35b9a7d13d581089009828d01b7d5d54d4ecd501c

    git-lfs-linux-arm64-v3.0.1.tar.gz 6db3094b3542bc05678ed34bc7a9741eaa40a244bca1927ae66338c1c14f1ad3

    git-lfs-linux-ppc64le-v3.0.1.tar.gz ebc9847e249d1155a61ca50f28c4bf8df37f76a2262e6cc882dbf4c324f7f1ed

    git-lfs-linux-s390x-v3.0.1.tar.gz 4a79607fc990d06ce8ef85e2eb33a7aed3c194e9b8df9fb2be80b6edf79e0003

    git-lfs-v3.0.1.tar.gz ea47feff8cf10855393dd20f22a7168c462043c7a654a5fd0546af0a9d28a3a2 e3fa836fd87769a72b72854d7796b29be4687890b077a5a9d614ec50c00177b8 d476f6a441be522cc4881b9c5eee3508f461c9739f45abfc8229cd272b2f0f1e e46cdfeab55b0afb23ae545c97db3412bdc5035428b06f7cbd6109ad66c855f7

    git-lfs-windows-v3.0.1.exe ae85a9953983264aceeb6db770f74e397123f7c0c4f356588f18e1d47a0922b8

    sha256sums.asc d95408902f5a379790af8913b0d0bc2aeb2b07314be9f5dc23827e93526bc2ff

    Source code(tar.gz)
    Source code(zip) MB) MB)
    git-lfs-freebsd-386-v3.0.1.tar.gz(3.58 MB)
    git-lfs-freebsd-amd64-v3.0.1.tar.gz(3.93 MB)
    git-lfs-linux-386-v3.0.1.tar.gz(3.59 MB)
    git-lfs-linux-amd64-v3.0.1.tar.gz(3.87 MB)
    git-lfs-linux-arm-v3.0.1.tar.gz(3.56 MB)
    git-lfs-linux-arm64-v3.0.1.tar.gz(3.56 MB)
    git-lfs-linux-ppc64le-v3.0.1.tar.gz(3.42 MB)
    git-lfs-linux-s390x-v3.0.1.tar.gz(3.73 MB)
    git-lfs-v3.0.1.tar.gz(2.98 MB) MB) MB) MB)
    git-lfs-windows-v3.0.1.exe(8.84 MB)
    sha256sums.asc(2.27 KB)
  • v2.13.3(Mar 26, 2021)

    This release fixes two bugs that caused git lfs prune to hang, updates some dependencies to versions which lack a security issue (which did not affect Git LFS), and adds support for ARM64 builds on macOS.


    • lfs: don't invoke diff drivers when pruning repositories #4407 (@bk2204)
    • Parse stash log entries parsimonously in prune command #4449 (@chrisd8088)


    • Darwin ARM64 support #4437 (@bk2204)
    • vendor,go.{mod,sum}: update x/net and dependencies #4398 (@chrisd8088)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 9 Debian 10

    SHA-256 hashes: 20509abd5291586c53e1c19768e06e7b2cf7d200cdce7b73a8ff2cfd51c49c51 0e845245d08036fd03eb2c1de18e6a1b0355485d73ad1d925fa9d19acc71f883

    git-lfs-freebsd-386-v2.13.3.tar.gz 1959126d7189b62a4d07bab2cc402feb4027c0644b8d4a73ee4f5529613be549

    git-lfs-freebsd-amd64-v2.13.3.tar.gz 9deaf0ec4a0b761ba88c135487622b180dc715e579a99b2c45de34db64de8ffc

    git-lfs-linux-386-v2.13.3.tar.gz b10807b769c3cb1151979a7b5e4798fbbd9d2b29b2ff43e3b3ae97ebd2d3e315

    git-lfs-linux-amd64-v2.13.3.tar.gz 03197488f7be54cfc7b693f0ed6c75ac155f5aaa835508c64d68ec8f308b04c1

    git-lfs-linux-arm-v2.13.3.tar.gz b317893dc789ee386999469cc7a9866d8d23d8b1084236e77a25e64536995b3d

    git-lfs-linux-arm64-v2.13.3.tar.gz 42baf1ec23e9fba197b1a62d09aab1d5dab744da6923009d6f9e4dc6d79df978

    git-lfs-linux-ppc64le-v2.13.3.tar.gz bf6eafb1f9aedbdbfed6bed1b6007400d237a3ab82153908892de6ca7ad902f1

    git-lfs-linux-s390x-v2.13.3.tar.gz f2b261140e1d38324407e3c6e59d5facbe55ccc3baa83a0feb0031eb180e5651

    git-lfs-v2.13.3.tar.gz f8bd7a06e61e47417eb54c3a0db809ea864a9322629b5544b78661edab17b950 ba10671d021f39269f0c8374c9ae140a5acbd73a30e3b812173a80b777a2e867 7997d2a6e4103af331c73db10860426cb03c5188426d27619e823358493e13e4

    git-lfs-windows-v2.13.3.exe dbb53e845a1264dd898dc682d06f890a9d703c843a8a0f8be646efcdc7bc940b

    sha256sums.asc 7cd300d35c12228a795037873aae30144cf722be268c1ae27db2050d60c0275c

    Source code(tar.gz)
    Source code(zip) MB) MB)
    git-lfs-freebsd-386-v2.13.3.tar.gz(3.59 MB)
    git-lfs-freebsd-amd64-v2.13.3.tar.gz(3.86 MB)
    git-lfs-linux-386-v2.13.3.tar.gz(3.60 MB)
    git-lfs-linux-amd64-v2.13.3.tar.gz(3.86 MB)
    git-lfs-linux-arm-v2.13.3.tar.gz(3.56 MB)
    git-lfs-linux-arm64-v2.13.3.tar.gz(3.50 MB)
    git-lfs-linux-ppc64le-v2.13.3.tar.gz(3.41 MB)
    git-lfs-linux-s390x-v2.13.3.tar.gz(3.74 MB)
    git-lfs-v2.13.3.tar.gz(2.76 MB) MB) MB)
    git-lfs-windows-v2.13.3.exe(6.59 MB)
    sha256sums.asc(2.19 KB)
  • v2.13.2(Jan 13, 2021)

    This release introduces a security fix for Windows systems, which has been assigned CVE-2021-21237.

    On Windows, if Git LFS operates on a malicious repository with a git.bat or git.exe file in the current directory, that program is executed, permitting the attacker to execute arbitrary code. This security problem does not affect Unix systems. This is the same issue as CVE-2020-27955, but the fix for that issue was incomplete and certain options can still cause the problem to occur.

    This occurs because on Windows, Go includes (and prefers) the current directory when the name of a command run does not contain a directory separator. This has been solved by always using PATH to pre-resolve paths before handing them to Go.

    We would like to extend a special thanks to the following open-source contributors:

    • @Ry0taK for reporting this to us responsibly


    • Use subprocess for invoking all commands (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 9 Debian 10

    SHA-256 hashes: c2ba5d42dfae821e8e013a6be7527a1a8e773af0f140f0b4c0a9c19e367a56cb

    git-lfs-freebsd-386-v2.13.2.tar.gz 20a7dba8c1691be5d5a130935e7a8bbf9de5667b5b0925d68fd728d923fd2c16

    git-lfs-freebsd-amd64-v2.13.2.tar.gz 2b871fed8e75dbd1ec24ee42d0c45eb2102dfdef1b64ed5bf32cd6bcd574b712

    git-lfs-linux-386-v2.13.2.tar.gz 16548c11c02dbe9ca1ff817fd0b453e5bc97f43267c40d5beaf83ce997d0938f

    git-lfs-linux-amd64-v2.13.2.tar.gz 7913f267c84518860551384313ece6f2e72cb5a18cf9987189a087108346267d

    git-lfs-linux-arm-v2.13.2.tar.gz 0970357d9c21e5024e5a8712f4aaf64facf69c2d9aff1f0d058ad3d4ba0d829c

    git-lfs-linux-arm64-v2.13.2.tar.gz e5b509fc18ed75974cd0ee3634e3f392d3ceed60023210c482cab4292e0560e7

    git-lfs-linux-ppc64le-v2.13.2.tar.gz 92921cfa791da627f1b59a0685e7f726d608ff1076727b4132eb909e4c6a1517

    git-lfs-linux-s390x-v2.13.2.tar.gz 04af15fe15611c695d27a9f04fb54cdeaeaa70f96ee16e7d375373d1a9c2594b

    git-lfs-v2.13.2.tar.gz 782e6275df9ca370730945112e16a0b8c64b9819f0b61fae52ba1ebbc8dce2d5 27d061f9fd6b14555c220758ae0b77d81ef20f64dde0179a515d55a75f5355a8 0e13b411ca6c2b2cfb3d82b67ae747ca5d055734d0ab2030d0823fc37ad48902

    git-lfs-windows-v2.13.2.exe f9da82f94ad447b307002222e0b7faab046c162b33a0962cce7f2bdac1e8a443

    sha256sums.asc 673d4c73d273155668b5bc818286ac426718dadfb86fc8bd2a7f615da9312801

    Source code(tar.gz)
    Source code(zip) MB)
    git-lfs-freebsd-386-v2.13.2.tar.gz(4.28 MB)
    git-lfs-freebsd-amd64-v2.13.2.tar.gz(4.52 MB)
    git-lfs-linux-386-v2.13.2.tar.gz(4.29 MB)
    git-lfs-linux-amd64-v2.13.2.tar.gz(4.52 MB)
    git-lfs-linux-arm-v2.13.2.tar.gz(4.20 MB)
    git-lfs-linux-arm64-v2.13.2.tar.gz(4.15 MB)
    git-lfs-linux-ppc64le-v2.13.2.tar.gz(4.11 MB)
    git-lfs-linux-s390x-v2.13.2.tar.gz(4.47 MB)
    git-lfs-v2.13.2.tar.gz(2.41 MB) MB) MB)
    git-lfs-windows-v2.13.2.exe(7.35 MB)
    sha256sums.asc(2.09 KB)
  • v2.13.1(Dec 11, 2020)

    This release fixes a bug in our build tooling that prevents our release process from working properly. This release is otherwise identical to 2.13.0.


    • Makefile: don't fail the second time macOS builds are built #4341 (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 9 Debian 10

    SHA-256 hashes: e6b356167e10d894a52f32691bf6fe65658066a4d81e5980add1cc28f64cb33c

    git-lfs-freebsd-386-v2.13.1.tar.gz 137bef490f5c1691027d85086c79d93509d98038de50ca98766ce5ff56730d75

    git-lfs-freebsd-amd64-v2.13.1.tar.gz 4ed42ce73b32aee52f109ed29dd952f9392dee6261cbf569fee504fdd5a1f3cb

    git-lfs-linux-386-v2.13.1.tar.gz ad1c45691736b2d960bcbc5612b8b84e4becff88165bc00235df21cdfa897bb7

    git-lfs-linux-amd64-v2.13.1.tar.gz 9eb3fac34783f600a7bf48d7e444a3e2e65bf452f8f76527806da51bedc295a4

    git-lfs-linux-arm-v2.13.1.tar.gz 9a72698dbff4ba56e72edd4495dc8487b475bd42c88e70b11a798ea536127231

    git-lfs-linux-arm64-v2.13.1.tar.gz 0da5405aaf03aceab0e02bf1190adf0533e507325658d7a64a92836177c5050d

    git-lfs-linux-ppc64le-v2.13.1.tar.gz e5486b7976547c2a473c5d4e590097b31e6519b93c64499cadeec86f08b22929

    git-lfs-linux-s390x-v2.13.1.tar.gz e1b3975c02a55a1344cb308445857be92f93c354c4615c3e5297d0168d57893f

    git-lfs-v2.13.1.tar.gz 5ba7d945d96ad49492e29edbfd1cce528b2a034fdddbf6e5424e754a4a012029 5fe696dc31e14af1a202d04d0f643a1281101ceb9384ff77c487611a34e2ca87 cfd2a1b65664f7a9dfafeee61d063653e626448582bd53f7c268d9a72650185d

    git-lfs-windows-v2.13.1.exe 7a3d5924766926e15fa8bcddb11ee71d2bbc19beaa872cd9b09ac73aaa704ac7

    sha256sums.asc 1ac556793a30b04d6705af44a3424aad2eb2dccc48c5c07e7770e8ed01eb5489

    Source code(tar.gz)
    Source code(zip) MB)
    git-lfs-freebsd-386-v2.13.1.tar.gz(4.28 MB)
    git-lfs-freebsd-amd64-v2.13.1.tar.gz(4.52 MB)
    git-lfs-linux-386-v2.13.1.tar.gz(4.29 MB)
    git-lfs-linux-amd64-v2.13.1.tar.gz(4.52 MB)
    git-lfs-linux-arm-v2.13.1.tar.gz(4.20 MB)
    git-lfs-linux-arm64-v2.13.1.tar.gz(4.15 MB)
    git-lfs-linux-ppc64le-v2.13.1.tar.gz(4.11 MB)
    git-lfs-linux-s390x-v2.13.1.tar.gz(4.47 MB)
    git-lfs-v2.13.1.tar.gz(2.40 MB) MB) MB)
    git-lfs-windows-v2.13.1.exe(7.34 MB)
    sha256sums.asc(2.09 KB)
  • v2.12.1(Nov 4, 2020)

    This release introduces a security fix for Windows systems, which has been assigned CVE-2020-27955.

    On Windows, if Git LFS operates on a malicious repository with a git.bat or git.exe file in the current directory, that program is executed, permitting the attacker to execute arbitrary code. This security problem does not affect Unix systems.

    This occurs because on Windows, Go includes (and prefers) the current directory when the name of a command run does not contain a directory separator. This has been solved by always using PATH to pre-resolve paths before handing them to Go.

    We would like to extend a special thanks to the following open-source contributors:

    • @dawidgolunski for reporting this to us responsibly


    • subprocess: avoid using relative program names (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 8 Debian 9 Debian 10

    SHA-256 hashes: df9321896c7537969911227d900861c6ca840b2f1ac5fd5c7e5deeb2bf9c2cbd

    git-lfs-freebsd-386-v2.12.1.tar.gz 777374374a7fef476145e80b06f4a6d36022b7d7544c6c248ab6c3ed95261991

    git-lfs-freebsd-amd64-v2.12.1.tar.gz b9149f4838ff65d96a47ce3adab119e6f8b91e6f75a320ab1ee3705f5711ba10

    git-lfs-linux-386-v2.12.1.tar.gz 861f36921be0b206a0ad7b179ba6e595e8f32f9747541579bb3d7a54360798b5

    git-lfs-linux-amd64-v2.12.1.tar.gz f1ad07284dfdefaca96fbd047b804dd95731332c90ae79acc30a5ab575a42c5c

    git-lfs-linux-arm-v2.12.1.tar.gz 6b47a3e7104534616fc2ac6fa0ec400b0ec7de2c29f3ca9208079d3931d81389

    git-lfs-linux-arm64-v2.12.1.tar.gz 53d6851160f71fdd0c243fc3435e8eec92b116d7a9ea30fa923eb533cbbd6052

    git-lfs-linux-ppc64le-v2.12.1.tar.gz a738e35f102c1849d9e0565ac88aeb9d6797d7f9e9b8c5a082b9632a0ddf8169

    git-lfs-linux-s390x-v2.12.1.tar.gz 3ca0262b1d3694445c9c7d668e225e191b25625ad1eadd6c6393ab19b65e33fd

    git-lfs-v2.12.1.tar.gz 2b2e70f1233f7efe9a010771510391a07527ec7c0af721ecf8edabac5d60f62b 246d6ad24ae6c89d88453dac50aa6ec991b0f09b21a72b56397c4ee3d795b2fc 1243626c8b7d3607e1335c31cc00972e34904a568dcfb48e7c0f404877cceadc

    git-lfs-windows-v2.12.1.exe 4a0118684f8e1445433a91a8ecd3176a201b5a90793f240fb9c61207fdb96e20

    sha256sums.asc 24b9b046a8bb55a8e6daff2d7b8a465b87a8e3eca6453b616ef33a17b245fb0d

    Source code(tar.gz)
    Source code(zip) MB)
    git-lfs-freebsd-386-v2.12.1.tar.gz(4.22 MB)
    git-lfs-freebsd-amd64-v2.12.1.tar.gz(4.46 MB)
    git-lfs-linux-386-v2.12.1.tar.gz(4.23 MB)
    git-lfs-linux-amd64-v2.12.1.tar.gz(4.46 MB)
    git-lfs-linux-arm-v2.12.1.tar.gz(4.14 MB)
    git-lfs-linux-arm64-v2.12.1.tar.gz(4.09 MB)
    git-lfs-linux-ppc64le-v2.12.1.tar.gz(4.05 MB)
    git-lfs-linux-s390x-v2.12.1.tar.gz(4.41 MB)
    git-lfs-v2.12.1.tar.gz(2.71 MB) MB) MB)
    git-lfs-windows-v2.12.1.exe(7.22 MB)
    sha256sums.asc(2.09 KB)
  • v2.12.0(Sep 1, 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 bugs have been fixed and miscellaneous fixes 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


    • config: optionally read .lfsconfig from the repository #4200 (@bk2204)
    • Support SHA-256 repositories #4186 (@bk2204)
    • allow Go 1.11 builds by using WaitStatus.ExitStatus() #4183 (@chrisd8088)
    • add --worktree option to install and uninstall commands #4159 (@chrisd8088)
    • Sign and notarize binaries on macOS #4143 (@bk2204)
    • Makefile: add linux arm build and release targets #4126 (@saracen)
    • Allow locking and unlocking non-existent files #3992 (@mversluys)


    • docs/api/locking: add an explicit
      #4208 (@cccfeng)
    • Fix hang when the user lacks permissions #4207 (@bk2204)
    • Don't mark unlocked files that aren't lockable as read-only #4171 (@bk2204)
    • locking: make patterns with slashes work on Windows #4139 (@bk2204)
    • git: consider full refspec when determining seen refs #4133 (@bk2204)


    • Fix Windows CI #4199 (@bk2204)
    • Fix testsuite when working with non-master default branch #4174 (@bk2204)
    • git: improve performance of remote ref listing #4176 (@bluekeyes)
    • subprocess: trace all command execution #4175 (@bluekeyes)
    • Update git-lfs-migrate.1.ronn #3869 (@gertcuykens)
    • t: use repo v1 with extensions #4177 (@bk2204)
    • Makefile: ensure temp Go modules can be deleted #4157 (@chrisd8088)
    • Improve test suite robustness via environment #4132 (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 8 Debian 9 Debian 10

    SHA-256 hashes: 1efa512f27113d560552d6e9008af422d4007e5cf20735e2f5109ad04c9add21

    git-lfs-freebsd-386-v2.12.0.tar.gz 0d239f399d3af06771ef52b08517d8a90f563d7b6118dff2efd4be2956c74eb2

    git-lfs-freebsd-amd64-v2.12.0.tar.gz 9014da6066b564d02e93cce1d70c67b448b79f1436c0630ed66dc16411f20b60

    git-lfs-linux-386-v2.12.0.tar.gz bbb792a32401300d6aed616f954ad15e17f15254c60b97704d56f6a3ff95d47e

    git-lfs-linux-amd64-v2.12.0.tar.gz f9befd0fa0b19517b8ed14ab07812f0d39d776d8c9ea0023e343e30ff300813f

    git-lfs-linux-arm-v2.12.0.tar.gz 9f46c3fbb77c2e2719d7db9f12cd8cfa951edecd1a8c2714f644729fbe154453

    git-lfs-linux-arm64-v2.12.0.tar.gz df6aa720ad53c2549035589fd0a62246ce06b1c3c8e65c35d7ce1ee43f7bc29d

    git-lfs-linux-ppc64le-v2.12.0.tar.gz 3e2ed6baaf2784d41934ab9245346cc15cb7d88278c2500a2411fed773eaaca1

    git-lfs-linux-s390x-v2.12.0.tar.gz dd0737369174e3f0c26d582061898b049dab49f19efc146aa1d457dec13419b5

    git-lfs-v2.12.0.tar.gz 9971d91cd2b0dd34ccda41a3db97504bfdb4fbc23cc2ee4b6e3b9afea5643941 09dbc739034ef8f551de8dc5ecdbfce3e77690b35ef734423e31797990960ecf 6d9418bf28ec59d5875a6bc51e56241c6a54916b3beedc802e137d8d76ab1db5

    git-lfs-windows-v2.12.0.exe 92ba19d77f67dd06fc971d57de7883888aa20fcd6f09e1118c83b99d4f02318b

    sha256sums.asc 968df09a440f9c048749695019b4e051849322910fe029c6813cb0ffbe2788be

    Source code(tar.gz)
    Source code(zip) MB)
    git-lfs-freebsd-386-v2.12.0.tar.gz(4.22 MB)
    git-lfs-freebsd-amd64-v2.12.0.tar.gz(4.46 MB)
    git-lfs-linux-386-v2.12.0.tar.gz(4.23 MB)
    git-lfs-linux-amd64-v2.12.0.tar.gz(4.45 MB)
    git-lfs-linux-arm-v2.12.0.tar.gz(4.13 MB)
    git-lfs-linux-arm64-v2.12.0.tar.gz(4.09 MB)
    git-lfs-linux-ppc64le-v2.12.0.tar.gz(4.04 MB)
    git-lfs-linux-s390x-v2.12.0.tar.gz(4.41 MB)
    git-lfs-v2.12.0.tar.gz(2.71 MB) MB) MB)
    git-lfs-windows-v2.12.0.exe(7.21 MB)
    sha256sums.asc(2.09 KB)
  • v2.11.0(May 8, 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 bugs have been fixed and miscellaneous issues 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 fixing the default behavior of a prompt
    • @nataliechen1 for fixing certain upload retry failures
    • @shalashik for fixing a panic during cherry-pick
    • @swisspol for updating our documentation to reflect supported .lfsconfig keys
    • @dan2468 for updating the copyright year


    • Allow literal local paths as remotes #4119 (@bk2204)
    • pre-push: find named remote for URL if possible #4103 (@bk2204)
    • tq: add exponential backoff for retries #4097 (@bluekeyes)
    • migrate import: set text to unspecified for excluded fields #4068 (@bk2204)
    • Update list of distros for #4080 (@bk2204)
    • lfshttp: allow renegotiation #4066 (@bk2204)
    • Support submodule.recurse = true #4063 (@pluehne)
    • add man page for the post-commit hook command #4052 (@chrisd8088)
    • Add an option to control warning about files larger than 4 GiB #4009 (@bk2204)


    • commands/command_migrate.go: fix bug #4116 (@Electric26)
    • git: avoid "bad object" messages when force-pushing #4102 (@bk2204)
    • git: avoid trying to rewrite remote tags as remote branches #4096 (@bk2204)
    • make Go tests run consistently using local binary #4084 (@chrisd8088)
    • commands: don't honor lfs.fetch* for ls-files #4083 (@bk2204)
    • commands: print help output with --help #4059 (@bk2204)
    • fail dedup command with explanation when LFS extensions configured #4045 (@chrisd8088)
    • fix upload retry 'file already closed' issue' #4042 (@nataliechen1)
    • commands/command_filter_process: cherry-pick of several commits cause panic error #4017 (@shalashik)
    • Check error when creating local storage directory #4016 (@bk2204)
    • track: detect duplicate patterns with --filename #4000 (@bk2204)


    • Removed lfs.extension.* from list of supported keys for .lfsconfig #4044 (@swisspol)
    • Tidy modules #4035 (@bk2204)
    • README: explain how to verify releases #4022 (@bk2204)
    • docs: document git lfs migrate --yes #4023 (@bk2204)
    • Stop using cgo on amd64 Linux #4026 (@bk2204)
    • updated copyright year #3995 (@dan2468)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 8 Debian 9 Debian 10

    SHA-256 hashes:

    git-lfs-darwin-386-v2.11.0.tar.gz a787317307eda160eb2231231cfaccd709e548bf0177fb24f9a6356721915590

    git-lfs-darwin-amd64-v2.11.0.tar.gz d4ae4db762f037de6224b2524adfccb736105bdcbb59c788da381e69a320e151

    git-lfs-freebsd-386-v2.11.0.tar.gz de155afdad8cf6c317146b6d9a17aacda3144d6dea584590eccf6181976c4bbb

    git-lfs-freebsd-amd64-v2.11.0.tar.gz 070024b478a86e4941114c3594b529b985c2fa9dde64ec671401c30b9b157acd

    git-lfs-linux-386-v2.11.0.tar.gz 7a70b73386fd29e639cfdf6366b3261c7ff207171e50e19a39b5efc15827dd0a

    git-lfs-linux-amd64-v2.11.0.tar.gz 46508eb932c2ec0003a940f179246708d4ddc2fec439dcacbf20ff9e98b957c9

    git-lfs-linux-arm64-v2.11.0.tar.gz ba6a2820d6afcdf94a83c9307bfbabcc2f8146b27404b450c673567798a81f67

    git-lfs-linux-ppc64le-v2.11.0.tar.gz 76196d06a79eec11c202d9cbafbab98f52b9a7fda8538c2d94748461ba192209

    git-lfs-linux-s390x-v2.11.0.tar.gz ca73776cb1cdc855aaf743c09ae70caae97f67d8d5e4147f19dcc4f959f9fc4d

    git-lfs-v2.11.0.tar.gz 8183c4cbef8cf9c2e86b0c0a9822451e2df272f89ceb357c498bfdf0ff1b36c7 6de91f3ee5f82304bba99211609323a4ba6f6846e80e5f9e368f3c2d30564d66 ca05b0b9bd39d99665045776a5d0d5c7bfa2605a6118c2f489bfd40c2c3e4f2c

    git-lfs-windows-v2.11.0.exe bd314f1857d429a144cd7110f135743efe310e90ac56a2f182cad8e33c299da1

    sha256sums.asc 6cb1d6c0d2b462459d883b9427eff6443ccdcb1b8a6f342222855b15c51b624d

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.11.0.tar.gz(4.39 MB)
    git-lfs-darwin-amd64-v2.11.0.tar.gz(4.62 MB)
    git-lfs-freebsd-386-v2.11.0.tar.gz(4.21 MB)
    git-lfs-freebsd-amd64-v2.11.0.tar.gz(4.45 MB)
    git-lfs-linux-386-v2.11.0.tar.gz(4.22 MB)
    git-lfs-linux-amd64-v2.11.0.tar.gz(4.45 MB)
    git-lfs-linux-arm64-v2.11.0.tar.gz(4.08 MB)
    git-lfs-linux-ppc64le-v2.11.0.tar.gz(4.04 MB)
    git-lfs-linux-s390x-v2.11.0.tar.gz(4.40 MB)
    git-lfs-v2.11.0.tar.gz(2.70 MB) MB) MB)
    git-lfs-windows-v2.11.0.exe(7.20 MB)
    sha256sums.asc(2.09 KB)
  • v2.10.0(Jan 21, 2020)

    This release introduces several new features, such as support for local paths in remotes, Kerberos support, and official binaries for S390x and little-endian 64-bit PowerPC systems. In addition, numerous bugs have been fixed and miscellaneous issues have been addressed.

    We would like to extend a special thanks to the following open-source contributors:

    • @ganadist for fixing a bug in the output of git lfs env
    • @exceed-alae for fixing a possible nil pointer dereference
    • @slonopotamus for improvements to Windows support and code cleanups
    • @nataliechen1 for fixing a data race
    • @ssgelm for writing and updating the code to use a new cookie jar parser
    • @austintraver for improving the output of git lfs status
    • @nikola-sh for improving option parity with Git
    • @alrs for fixing several error checks in the testsuite
    • @pluehne for improving our support for uncommon references


    • Optimize pushes for multiple refs #3978 (@bk2204)
    • Include ppc64le and s390x Linux builds in releases #3983 (@bk2204)
    • Kerberos (SPNEGO) support for HTTP #3941 (@bk2204)
    • Add support for local paths #3918 (@bk2204)
    • Allow specifying HTTP version to use #3887 (@bk2204)


    • t-duplicate-oids: use correct awk indexing #3981 (@bk2204)
    • Improved proxy support #3972 (@bk2204)
    • install: don't print error if run outside repository #3969 (@bk2204)
    • debian: bump version of golang-go #3959 (@bk2204)
    • lfshttp: Set valid default value for lfs.concurrenttransfers #3949 (@ganadist)
    • Add nil-check on defer block of DoTransfer() #3936 (@exceed-alae)
    • Retry batch failures #3930 (@bk2204)
    • rpm: use old setup code on CentOS 7 #3938 (@bk2204)
    • Interpret relative hook paths as relative to working tree #3926 (@bk2204)
    • Handle missing cygpath gracefully #3910 (@bk2204)
    • Update index before showing status #3921 (@bk2204)
    • Honor lfs.url when deciding on transfer adapters #3905 (@bk2204)
    • Implement retry logic to fix LFS storage race conditions on Windows #3890 (@slonopotamus)
    • Avoid hang when using git hash-object --stdin --path #3902 (@bk2204)
    • synchronize access to netrcCredentialHelper.skip #3896 (@nataliechen1)


    • Improve license files #3973 (@bk2204)
    • Add CI link to CI badge in README #3960 (@slonopotamus)
    • Clarify output shown by git lfs status #3953 (@austintraver)
    • Revert "ci: force Windows Git version to 2.22.0" #3903 (@bk2204)
    • Better document pointer format constraints #3944 (@bk2204)
    • Don't abort with newer Git when in a bare repo #3940 (@bk2204)
    • Fix more Linux package issues #3932 (@bk2204)
    • docs: explain shell metacharacters better #3920 (@bk2204)
    • Reset the text attribute on export #3913 (@bk2204)
    • Support schannel ssl backend #3868 (@nikola-sh)
    • Allow migrate export to handle non-pointer files gracefully #3911 (@bk2204)
    • git/gitattr: fix dropped test errors #3904 (@alrs)
    • Accept all local references with git lfs push #3876 (@pluehne)
    • Drop pre-1.6 Go compatibility code #3897 (@slonopotamus)
    • tools/kv: Fix dropped test error #3882 (@alrs)
    • Use different parser for cookiejar files #3886 (@ssgelm)
    • Stop replacing files in LFS storage when downloading them concurrently on Windows #3880 (@slonopotamus)
    • Fix error strings to follow Go guidelines #3871 (@slonopotamus)
    • Miscellaneous release fixes #3866 (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 8 Debian 9 Debian 10

    SHA-256 hashes:

    git-lfs-darwin-386-v2.10.0.tar.gz d3f1e0829e404f98813d0c85b50c7a6e435214c13c04b97b575f9804c3be2030

    git-lfs-darwin-amd64-v2.10.0.tar.gz 5fab721a45cb03e6596310dcd53097d1bd1239c23c36d45d596d194110bf5565

    git-lfs-freebsd-386-v2.10.0.tar.gz bba52ee62af72c6569aa22f20847e10f040e07b85fc5a57681613502b0b8d5b7

    git-lfs-freebsd-amd64-v2.10.0.tar.gz f36a73598e605e5f78525ff0ae13a364af0ce798cde655c166b1091b4dc9476a

    git-lfs-linux-386-v2.10.0.tar.gz 8cb943466ab91f3ce8cdc9cf160c32c4a368ea3c69fc6143cde881bb80b667cc

    git-lfs-linux-amd64-v2.10.0.tar.gz ec1513069f2679c4c95d9d7c54fdb4b9d7007cc568578a25e2b2ff30edd93cfd

    git-lfs-linux-arm64-v2.10.0.tar.gz 2dee573bd2357136c7a7a406d5c82347c11aade1bf5b8343fc63b941607022a5

    git-lfs-linux-ppc64le-v2.10.0.tar.gz 9b66563a53da2ff2155deb21b67a39699795314d3b5bff9d621aca4bbb39a63f

    git-lfs-linux-s390x-v2.10.0.tar.gz e297592f8927142509055cc3b25319b1bdfb0ac6c6f7935bf6109bfb9cf005a0

    git-lfs-v2.10.0.tar.gz 07fd5c57a1039d5717dc192affbe3268ec2fd03accdca462cb504c0b4194cd23 28c06a016cdf76c75880a5260a12c78767eb6a02a2d8e258ecf708d84c613570 7b2d3fc3ae96a81eaccadf718faa0b7676aad39a121c8d7c2686b7349a7ee7aa

    git-lfs-windows-v2.10.0.exe eab94d193b0781047df753a22935b7b2406367e3d4944685abf1e47435bc1a84

    sha256sums.asc 3f076872a996208d316cb06deec96f6b55b3cc2a280e671ba466ef8bb1af30d2

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.10.0.tar.gz(4.41 MB)
    git-lfs-darwin-amd64-v2.10.0.tar.gz(4.67 MB)
    git-lfs-freebsd-386-v2.10.0.tar.gz(4.22 MB)
    git-lfs-freebsd-amd64-v2.10.0.tar.gz(4.47 MB)
    git-lfs-linux-386-v2.10.0.tar.gz(4.22 MB)
    git-lfs-linux-amd64-v2.10.0.tar.gz(4.49 MB)
    git-lfs-linux-arm64-v2.10.0.tar.gz(4.09 MB)
    git-lfs-linux-ppc64le-v2.10.0.tar.gz(4.05 MB)
    git-lfs-linux-s390x-v2.10.0.tar.gz(4.43 MB)
    git-lfs-v2.10.0.tar.gz(2.64 MB) MB) MB)
    git-lfs-windows-v2.10.0.exe(7.02 MB)
    sha256sums.asc(2.09 KB)
  • v2.9.2(Dec 12, 2019)

    This release fixes a few regressions, such as a possible nil pointer dereference, a failure to retry batch requests, and a bug where repositories could fail to be detected on Windows.

    We would like to extend a special thanks to the following open-source contributors:

    • @exceed-alae for fixing a possible nil pointer dereference


    • Add nil-check on defer block of DoTransfer() #3936 (@exceed-alae)
    • Retry batch failures #3930 (@bk2204)
    • rpm: use old setup code on CentOS 7 #3938 (@bk2204)
    • Handle missing cygpath gracefully #3910 (@bk2204)


    • Don't abort with newer Git when in a bare repo #3940 (@bk2204)
    • Fix more Linux package issues #3932 (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 8 Debian 9 Debian 10

    SHA-256 hashes:

    git-lfs-darwin-386-v2.9.2.tar.gz dd835e174306b67781adbe696f78fd12ab1b4c025d44733e94f8256994649c17

    git-lfs-darwin-amd64-v2.9.2.tar.gz c55ec633fae52741d733d5ed23837af2b74886260dca2fa0d7d1c715c6bbc4e8

    git-lfs-freebsd-386-v2.9.2.tar.gz d1ac223dfc3a5c247ab574d1acba2aab10ec2bb43b4a8b4cb411b5092cc8362e

    git-lfs-freebsd-amd64-v2.9.2.tar.gz 8126f0f3cb621bc466fa86ee53ff02993ea28604f4cd4146c946e1b34d9df716

    git-lfs-linux-386-v2.9.2.tar.gz 1861cafcb73a2df095fb3ef0f1d4a7f2962cabdf8a92fdbaf77299e5d930913d

    git-lfs-linux-amd64-v2.9.2.tar.gz 04346234130e518d165bdc7e9964375bbeb3b98efabd042084530cc34288274c

    git-lfs-linux-arm64-v2.9.2.tar.gz 5decc81c3cfca1f445b08cb9d9414c4afde3c593d57c117e9e7e142886d54573

    git-lfs-v2.9.2.tar.gz 77358e12545415a6716b1e0228540f0e90619f1738dfe114cd3e5c30d43ffffd 5e979cfcf859fbfac59ef2e78bb2e1d83c7f8d7d5e91df8ee85d47c1694ef916 90847c9c9e4fb4ecd04fbeedc8f04f6519bbe0e4fd5f5b5674406f6d90409993

    git-lfs-windows-v2.9.2.exe 73bc2b6d6f6ec57911414926f9f032976c345e8ce7a3df019e4e846f21156f95

    sha256sums.asc 551378c09cdfb6843a629b9bd3dd524412a2735d5d2d5be9a60b57dc0fe6e2af

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.9.2.tar.gz(4.06 MB)
    git-lfs-darwin-amd64-v2.9.2.tar.gz(4.30 MB)
    git-lfs-freebsd-386-v2.9.2.tar.gz(3.88 MB)
    git-lfs-freebsd-amd64-v2.9.2.tar.gz(4.12 MB)
    git-lfs-linux-386-v2.9.2.tar.gz(3.88 MB)
    git-lfs-linux-amd64-v2.9.2.tar.gz(4.14 MB)
    git-lfs-linux-arm64-v2.9.2.tar.gz(3.77 MB)
    git-lfs-v2.9.2.tar.gz(2.40 MB) MB) MB)
    git-lfs-windows-v2.9.2.exe(6.98 MB)
    sha256sums.asc(1.88 KB)
  • v2.9.1(Nov 25, 2019)

    This release fixes a few regressions, such as the ability to use HTTP/1.1 when required, addresses a race condition, and switches the cookie jar parser to something that's easier for distributions to package.

    We would like to extend a special thanks to the following open-source contributors:

    • @nataliechen1 for fixing a data race
    • @ssgelm for writing and updating the code to use a new cookie jar parser


    • Allow specifying HTTP version to use #3887 (@bk2204)


    • synchronize access to netrcCredentialHelper.skip #3896 (@nataliechen1)
    • Fix several causes of CI problems #3878 (@bk2204)
    • Miscellaneous release fixes #3866 (@bk2204)


    • Build artifacts during CI for easier testing #3892 (@bk2204)
    • Use different parser for cookiejar files #3886 (@ssgelm)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 8 Debian 9 Debian 10

    SHA-256 hashes:

    git-lfs-darwin-386-v2.9.1.tar.gz 71c7774315ee25d96811a4ab49301cbce53b9a42cffe89c68bfcff3a1be55b93

    git-lfs-darwin-amd64-v2.9.1.tar.gz 973b6acb2735016265008b74c2f677ed5c086d2abfef4e77925f00efa4751205

    git-lfs-freebsd-386-v2.9.1.tar.gz 427513aa66557875f161f8fe48471691f9b6621af9238bc0459d27c151e6b501

    git-lfs-freebsd-amd64-v2.9.1.tar.gz 2a343d5d24469366202d1a16a25afaebc2d93f71ce746375a125c6a0878b1009

    git-lfs-linux-386-v2.9.1.tar.gz 87a44e41ae1da1ed2650f74d5e4129a166c2c13c8e58566848edd655ddb7bff9

    git-lfs-linux-amd64-v2.9.1.tar.gz 2a8e60cf51ec45aa0f4332aa0521d60ec75c76e485d13ebaeea915b9d70ea466

    git-lfs-linux-arm64-v2.9.1.tar.gz ff2f8472a5ac0e808108bad0cc6be5ca1849eb970228b1aa3d627bcbc8228ad9

    git-lfs-v2.9.1.tar.gz f5a444f00e30b663ae32b34ebee82356ec2af62a8d6eafceaa4f18bfa9b6e600 8f4283326a27576e005e63938e0928080ed5662272099e65dae16f8a4396b2a2 ac3aff23a44722db7f267b7f2bfac8c30951cd821b6f5fe385ef93b31e04f957

    git-lfs-windows-v2.9.1.exe ec424624ae85ea4145d65cc3d2aae80cc4a880292713f78be2e08789775cd17d

    sha256sums.asc d4355945abed87b6331659ade5117605edfd7d3fc9d6166e43c195472a9f2bbc

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.9.1.tar.gz(4.06 MB)
    git-lfs-darwin-amd64-v2.9.1.tar.gz(4.30 MB)
    git-lfs-freebsd-386-v2.9.1.tar.gz(3.88 MB)
    git-lfs-freebsd-amd64-v2.9.1.tar.gz(4.12 MB)
    git-lfs-linux-386-v2.9.1.tar.gz(3.88 MB)
    git-lfs-linux-amd64-v2.9.1.tar.gz(4.14 MB)
    git-lfs-linux-arm64-v2.9.1.tar.gz(3.77 MB)
    git-lfs-v2.9.1.tar.gz(2.40 MB) MB) MB)
    git-lfs-windows-v2.9.1.exe(6.98 MB)
    sha256sums.asc(1.88 KB)
  • v2.9.0(Oct 17, 2019)

    This release adds support for DragonFly BSD, adds a new git lfs dedup command to save space if the file system supports it, adds support for file URLs, improves the performance when walking the repository, contains improvements to use HTTP/2 when available and cookies when required, and numerous other bug fixes, features, and modifications.

    We would like to extend a special thanks to the following open-source contributors:

    • @pluehne for adding support for fetching the history of specific refs
    • @kupson for adding cookie support
    • @liweitianux for adding Dragonfly BSD support
    • @kazuki-ma for implementing de-duplication support
    • @dvdveer for adding range support to ls-files
    • @dyrone, @pmeerw, @yamiacat, and @kittenking for cleaning up some documentation issues
    • @slonopotamus for improving concurrent downloads
    • @nataliechen1 for fixing remote names with dots
    • @jw3 for removing excessive logging
    • @SeamusConnor for significantly improving performance when walking the repository


    • Support fetching entire history of specific refs #3849 (@pluehne)
    • Add support for CentOS 8 #3854 (@bk2204)
    • Let git-lfs HTTPS transport send cookies #3825 (@kupson)
    • Support DragonFly BSD #3837 (@liweitianux)
    • HTTP/2 protocol support #3793 (@PastelMobileSuit)
    • Add clonefile on Windows over ReFS support. #3790 (@kazuki-ma)
    • Add new command git lfs dedup for file system level de-duplication. #3753 (@kazuki-ma)
    • Support GIT_ALTERNATE_OBJECT_DIRECTORIES #3765 (@bk2204)
    • ls-files: add support for reference range #3764 (@dvdveer)
    • Add several additional distros for #3751 (@bk2204)
    • Provide an option to track to handle paths literally #3756 (@bk2204)
    • Optimize traversal of Git objects with URL remotes #3755 (@bk2204)
    • Support for file URLs #3748 (@bk2204)
    • Add clone file on MacOS X (darwin). #3745 (@kazuki-ma)


    • Fix JSON comma problems in docs #3851 (@dyrone)
    • Remove redundant comma in #3841 (@dyrone)
    • More robust handling of parallel attempts to download the same file #3826 (@slonopotamus)
    • Update wildmatch to v1.0.4 #3820 (@bk2204)
    • Update to gitobj v1.4.1 #3815 (@bk2204)
    • Fix build error when cross-compiling #3817 (@bk2204)
    • Do not fail when multiple processes download the same lfs file #3813 (@slonopotamus)
    • Fix Remote Name Parsing Bug #3812 (@nataliechen1)
    • status: gracefully handle files replaced by directories #3768 (@bk2204)
    • Avoid deadlock when transfer queue fails #3800 (@bk2204)
    • Avoid a hang when Git is slow to provide us data #3806 (@bk2204)
    • tasklog/log.go: print "done" messages with a trailing period #3789 (@ttaylorr)
    • track: make --filename work with spaces #3785 (@bk2204)
    • Fix couple of 'the the' typos #3786 (@pmeerw)
    • Use an absolute path for smudging #3780 (@bk2204)
    • Fix URL parsing with Go 1.12.8 #3771 (@bk2204)
    • Fix remote autoselection when not on a branch #3759 (@bk2204)
    • Replace deprecated SEEK_SET, SEEK_CUR usage. #3739 (@kazuki-ma)
    • Do not log skipped checkouts to file #3736 (@jw3)
    • Fix typos across git-lfs repository #3728 (@kittenking)
    • Accept legacy Git SSH URLs #3713 (@bk2204)


    • ls-files --all man patch #3859 (@yamiacat)
    • Reworked to use git ls-files in some circumstances instead of FastWalkGitRepo #3823 (@SeamusConnor)
    • Clean up go.mod for Go 1.13 #3807 (@bk2204)
    • Use FICLONE instead of BTRFS_IOC_CLONE. #3796 (@kazuki-ma)
    • Remove unused pty code #3737 (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 RPM RHEL 8/CentOS 8 Debian 8 Debian 9 Debian 10

    SHA-256 hashes:

    git-lfs-darwin-386-v2.9.0.tar.gz ea419d14428cc84121b714c9c54eaa51b66b65d078c8599a12d09da7a165c792

    git-lfs-darwin-amd64-v2.9.0.tar.gz aa581bc8de80d3f9c7ebc1b08c472437df0c0ad118a4cdc84a5be29dbf49e6e4

    git-lfs-freebsd-386-v2.9.0.tar.gz 2d7b28888db0ceb7549d8b9cf57b54e7e01c74d3d4883a07f2de406be816aa93

    git-lfs-freebsd-amd64-v2.9.0.tar.gz 314b83ee20143853b6b87e23fdc81c0e685d9b9dde9a33deaf562762536f2eb5

    git-lfs-linux-386-v2.9.0.tar.gz 4e792c03c86c9819d1aaa681a9435e336697b6064fc1947a4afe327e746a0dfe

    git-lfs-linux-amd64-v2.9.0.tar.gz afe269af8c60f2f36f9c9203dd0af279f0b8f74e1a36493330b82d99adc05ddc

    git-lfs-linux-arm64-v2.9.0.tar.gz 55bdf6d1b39782d0053f9a3e7949a1d66b383f7d374bddb4bcabc3d9067659a9

    git-lfs-v2.9.0.tar.gz f1963ad88747577ffeeb854649aeacaa741c59be74683da4d46b129a72d111b7 b80b7b000c06727c51b8c69acb6f3190c507f7260ed7f3a86b5ae62879fdf1fe b6748daf645335b9316ea6356ee4c48262d1da196424d51d17c4dbbf9ef46e75

    git-lfs-windows-v2.9.0.exe f4842e31113f8d9bfc1ea811757f10a5470943501657c3aeff1b5d8340e9a002

    sha256sums.asc 4dd5a0dbff24785c678d6d61e574c6e496d4ed7cf0b344866bddc0ad52c94e06

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.9.0.tar.gz(4.02 MB)
    git-lfs-darwin-amd64-v2.9.0.tar.gz(4.25 MB)
    git-lfs-freebsd-386-v2.9.0.tar.gz(3.83 MB)
    git-lfs-freebsd-amd64-v2.9.0.tar.gz(4.08 MB)
    git-lfs-linux-386-v2.9.0.tar.gz(3.83 MB)
    git-lfs-linux-amd64-v2.9.0.tar.gz(4.10 MB)
    git-lfs-linux-arm64-v2.9.0.tar.gz(3.72 MB)
    git-lfs-v2.9.0.tar.gz(2.37 MB) MB) MB)
    git-lfs-windows-v2.9.0.exe(6.90 MB)
    sha256sums.asc(1.88 KB)
  • v2.8.0(Jul 23, 2019)

    This release adds support for SOCKS proxies and Windows junctions, adds native packages for Debian 10 and similar distributions, reduces the number of situations in which running git lfs fetch --all is required, improves compatibility with Cygwin, and numerous other bug fixes and modifications.

    We would like to extend a special thanks to the following open-source contributors:

    • @mstrap for adding support for listing lock owners
    • @h-hirokawa for adding support for rewriting object URLs
    • @slonopotamus for helping get our specs and implementation in sync
    • @ssgelm for improving our Debian packaging
    • @TBK for fixing a test
    • @hartzell for improving the compatibility of our Makefile
    • @AJH16 for implementing support for NTLM SSO


    • Don't fail if we lack objects the server has #3634 (@bk2204)
    • Add support for Debian 10 #3697 (@bk2204)
    • Migrate tags pointing to other tags #3690 (@bk2204)
    • Add support for SOCKS proxies #3677 (@bk2204)
    • Allow vendors to customize the version info #3636 (@bk2204)
    • Wrap credential data to allow late credential prompting and update NTLM/SSPI to attempt SSPI login prior to prompting for credentials. #3617 (@AJH16)
    • git-lfs locks should optionally denote own locks #3569 (@mstrap)
    • tq/adapterbase: support rewriting href #3590 (@h-hirokawa)
    • Handle Windows junctions properly #3560 (@bk2204)
    • Allow specifying multiple insteadOf aliases #3550 (@bk2204)


    • Make API documentation lock creation example less confusing #3648 (@bk2204)
    • Use a download token when searching locks #3715 (@bk2204)
    • Copy mode from original file when rewriting objects #3694 (@bk2204)
    • Don't recurse into submodules when walking repository #3686 (@bk2204)
    • Be more precise about what timestamps we accept #3680 (@bk2204)
    • Canonicalize common directory paths on Cygwin #3671 (@bk2204)
    • Ensure we always use correct Content-Type and Accept headers #3663 (@bk2204)
    • Fix 'owner' lock field not documented as optional #3651 (@slonopotamus)
    • Improve error handling in git lfs install #3624 (@bk2204)
    • Properly handle config options for URLs with upper case letters #3584 (@bk2204)
    • Detect Cygwin-style pipe TTYs as TTYs #3582 (@bk2204)
    • Set push remote for pre-push #3579 (@bk2204)
    • Switch from manually running go generate to using dh-golang to run it #3549 (@ssgelm)
    • Install worktree hooks in the proper directory #3547 (@bk2204)
    • Avoid nil pointer dereference on download failure #3537 (@bk2204)
    • Avoid nil pointer dereference on unexpected failure #3534 (@bk2204)


    • Update gitobj to v1.3.1 #3716 (@bk2204)
    • Use default line endings for core.autocrlf=input #3712 (@bk2204)
    • Fix CircleCI #3710 (@bk2204)
    • Vendor in gitobj v1.3.0 #3685 (@bk2204)
    • Update CONTRIBUTING #3673 (@bk2204)
    • Fix typo in #3666 (@TBK)
    • Make 'locked_at' required in JSON schema #3655 (@slonopotamus)
    • Document a new batch error code #3639 (@bk2204)
    • Fix invalid JSON in LFS locking API documentation #3650 (@slonopotamus)
    • Fix invalid JSON in locking protocol docs #3644 (@slonopotamus)
    • Various release updates #3623 (@bk2204)
    • tq/adapterbase: fix typo enableHrefRerite to enableHrefRewrite #3594 (@h-hirokawa)
    • Use git-lfs version of go-ntlm #3588 (@bk2204)
    • Log test server standard error to log file #3577 (@bk2204)
    • Don't set -extldflags unless LDFLAGS has a value #3545 (@hartzell)
    • Retry on oversize file #3518 (@bk2204)
    • Fix asset uploading during releases #3538 (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 8 Debian 9 Debian 10

    SHA-256 hashes:

    git-lfs-darwin-386-v2.8.0.tar.gz 4356bf64d4bde0f84a41b22775b96af18e9731955cc5fee2102a79e999364f15

    git-lfs-darwin-amd64-v2.8.0.tar.gz 66ac89b5db3e57b192d7f6353b2eb031df82c61313c8a2cfa29cded2c939ac1a

    git-lfs-freebsd-386-v2.8.0.tar.gz b635af8bc1075ee0e14695d3617efdc880c438355723cc4d23823680c13be8db

    git-lfs-freebsd-amd64-v2.8.0.tar.gz e6f5885d5a97b0265b2e2f84d639e2f7357005f3f09ed5b6a522b13ee61688e9

    git-lfs-linux-386-v2.8.0.tar.gz 4ef51eb6ee2f609e4ed3dc0f26baa74798aa7ed5cf9388b71a497b385402100f

    git-lfs-linux-amd64-v2.8.0.tar.gz 54054178deea7c97ce58edf9c0a2f79eb30c1e836fbc7e6dece9b2c9ff516863

    git-lfs-linux-arm64-v2.8.0.tar.gz a43d4cb6c54188e46e08766b4cb62d15b32f4159d962bf42a3a5ad71bf58d0b8

    git-lfs-v2.8.0.tar.gz 3347bbe6055b38902e4ef65d0f0aa00b3f100b2ad67a43aee6f340e4eb731535 62806a56ceb485b6fe36252d097c272cc1e9100165eb471e00d45e78a80b254d ffeb6e0a7d214155d87fde11c4366da4f7549705f93f8873ad43ec7520282d45

    git-lfs-windows-v2.8.0.exe b416379939b9eeaec5cae3565dd641858c72d8d2788e57f3518c6d67007585a8

    sha256sums.asc 7eb2e32e70c9efc4a210d799f2314529f81f7a23ccfea12ea7b18d990533445c

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.8.0.tar.gz(3.83 MB)
    git-lfs-darwin-amd64-v2.8.0.tar.gz(4.07 MB)
    git-lfs-freebsd-386-v2.8.0.tar.gz(3.66 MB)
    git-lfs-freebsd-amd64-v2.8.0.tar.gz(3.88 MB)
    git-lfs-linux-386-v2.8.0.tar.gz(3.65 MB)
    git-lfs-linux-amd64-v2.8.0.tar.gz(3.87 MB)
    git-lfs-linux-arm64-v2.8.0.tar.gz(3.54 MB)
    git-lfs-v2.8.0.tar.gz(1.60 MB) MB) MB)
    git-lfs-windows-v2.8.0.exe(5.88 MB)
    sha256sums.asc(1.88 KB)
  • v2.7.2(Apr 23, 2019)

    This release is a bugfix release to address some build problems and a regression in handling URLs with uppercase letters.

    We would like to extend a special thanks to the following open-source contributors:

    • @andyneff for updating our release targets
    • @ssgelm for improving the Debian package manpage generation
    • @hartzell for work on the build system


    • Don't set -extldflags unless LDFLAGS has a value #3545 (@hartzell)
    • Switch from manually running go generate to using dh-golang to run it #3549 (@ssgelm)
    • Properly handle config options for URLs with upper case letters #3584 (@bk2204)


    • Update packagecloud.rb #3546 (@andyneff)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 7 Debian 8 Debian 9

    SHA-256 hashes:

    git-lfs-darwin-386-v2.7.2.tar.gz 41cf038bf73ba7883bd8f558cff343171a1a276062b923c26d39e564ef4e4ecf

    git-lfs-darwin-amd64-v2.7.2.tar.gz f67da07561c25889af56b1fd873c074eb240a0fad853989fec9923c1c1acb826

    git-lfs-freebsd-386-v2.7.2.tar.gz 4a496836d42a8395adb49a13d2b26f57223c48d673f03fc98e98f85ba7f5e305

    git-lfs-freebsd-amd64-v2.7.2.tar.gz fbdfd7d1f6d991b5d91f13c7ca366a5b76ad7c26862cd5049a954a174fefec1f

    git-lfs-linux-386-v2.7.2.tar.gz b93a409ee6da540843cd54d799caaee3545f6367208a742511dd58151cf313ff

    git-lfs-linux-amd64-v2.7.2.tar.gz 89f5aa2c29800bbb71f5d4550edd69c5f83e3ee9e30f770446436dd7f4ef1d4c

    git-lfs-linux-arm64-v2.7.2.tar.gz ea628d95158d5c76d9c7fe9432f28e49cc1a1b7ae3928b7089b1f4f97748d7a0

    git-lfs-v2.7.2.tar.gz 1e0a11e16051ea32127787a9197edd02564a5e4452f0e99d0d0b62ccfe22fc22 f4f49e9261584711c337f566a62bd9645cc0e10cef4dc54de1e1e0d31a7b2f71 5cbe0765d469bbb32548a86e92d5e8694f1e97df7d590552477c3fafdc6c82e1

    git-lfs-windows-v2.7.2.exe 67cd17d3f4b8fba4886d0ac29e6c9e56e6b88997de56928c8c96eb602c0b7735

    sha256sums.asc 8cf6cc2a6f6f79e1eefffa15b40ff93d7b7737e2814fd904c2b17c055b1b4303

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.7.2.tar.gz(3.82 MB)
    git-lfs-darwin-amd64-v2.7.2.tar.gz(4.06 MB)
    git-lfs-freebsd-386-v2.7.2.tar.gz(3.65 MB)
    git-lfs-freebsd-amd64-v2.7.2.tar.gz(3.87 MB)
    git-lfs-linux-386-v2.7.2.tar.gz(3.65 MB)
    git-lfs-linux-amd64-v2.7.2.tar.gz(3.86 MB)
    git-lfs-linux-arm64-v2.7.2.tar.gz(3.54 MB)
    git-lfs-v2.7.2.tar.gz(1.59 MB) MB) MB)
    git-lfs-windows-v2.7.2.exe(5.87 MB)
    sha256sums.asc(1.89 KB)
  • v2.7.1(Feb 26, 2019)

    This release is a bugfix release to address panics that could occur when certain types of upload or download problems happen.


    • Avoid nil pointer dereference on download failure #3537 (@bk2204)
    • Avoid nil pointer dereference on unexpected failure #3534 (@bk2204)


    • Fix asset uploading during releases #3538 (@bk2204)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 7 Debian 8 Debian 9

    SHA-256 hashes:

    git-lfs-darwin-386-v2.7.1.tar.gz 7deddad95dcec63d6712a02858ca7d4d6ab4297f8334e1dac35a65f4e16c7b6a

    git-lfs-darwin-amd64-v2.7.1.tar.gz 16653c7aefd5b7fb040db675dc0a9983d78a914bafc22940d938bcce7bf9b649

    git-lfs-freebsd-386-v2.7.1.tar.gz 8b8c3fc7f818357b959a9e388ac3b9de94f943bddff98cfcce64ab9a61712214

    git-lfs-freebsd-amd64-v2.7.1.tar.gz 857a9b481ce2faabd3676f5033da828a9badf0ce839501b35f6a8d82c88c3be0

    git-lfs-linux-386-v2.7.1.tar.gz b9e3435fbbb964dbc21b307307752c8c58ed2f5e640de72c98d2e2ff5aa309d6

    git-lfs-linux-amd64-v2.7.1.tar.gz 7be85238cbbb957ab25de52b60279d40ba40d3faa72eeb2cb9fa77d6d92381e5

    git-lfs-linux-arm64-v2.7.1.tar.gz 16a37788348759284f6b5af50fab6a591ef70df0dfe85c97074873b6c5f82471

    git-lfs-v2.7.1.tar.gz 0334bea2c917cd8ed1215bca0c3fe8f015f664651611fe410826fe14bdcae0d8 5ce9466934b37a258aae07f19ba8a70cdeff75239fb66126e718a60cf2820ed8 5c12db9728b53cba23e5f58f4a53d88cb2132e82fa1de0f8a79ce9d112e4d396

    git-lfs-windows-v2.7.1.exe 43db9e0b63ca69f3aa36b34fad5eecfb70fb2ae36ca160ecd03ac7cfc5f3422d

    sha256sums.asc 7197c3c69aff30c8dc3881b60c01600cc28c01d8d278840046ded22f7bf533e3

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.7.1.tar.gz(3.80 MB)
    git-lfs-darwin-amd64-v2.7.1.tar.gz(4.04 MB)
    git-lfs-freebsd-386-v2.7.1.tar.gz(3.63 MB)
    git-lfs-freebsd-amd64-v2.7.1.tar.gz(3.86 MB)
    git-lfs-linux-386-v2.7.1.tar.gz(3.63 MB)
    git-lfs-linux-amd64-v2.7.1.tar.gz(3.85 MB)
    git-lfs-linux-arm64-v2.7.1.tar.gz(3.52 MB)
    git-lfs-v2.7.1.tar.gz(1.59 MB) MB) MB)
    git-lfs-windows-v2.7.1.exe(5.39 MB)
    sha256sums.asc(1.89 KB)
  • v2.7.0(Feb 15, 2019)

    This release adds better support for large files on 32-bit systems, adds attribute macros, fixes several file descriptor leaks, improves compatibility with Git's configuration parsing, and includes numerous other bug fixes and modifications.

    We would like to extend a special thanks to the following open-source contributors:

    • @andyneff and @torbjoernk for updating our release targets
    • @zkry for work on rate-limiting
    • @Foxboron for work on reproducible builds
    • @mstrap for adding a release target for Linux arm64
    • @keiko713, @Erwyn, and @mloskot for improving our documentation
    • @QuLogic for fixing our tests under SELinux
    • @saracen and @steffengodskesen for improving our output handling
    • @mbsulliv for finding and fixing a bug where we ran out of file descriptors


    • Add sles 15 support #1055 #3515 (@andyneff)
    • docs/man/git-lfs-config.5.ronn: document GIT_LFS_SKIP_SMUDGE #3509 (@ttaylorr)
    • commands/command_pointer.go: introduce --check option #3501 (@ttaylorr)
    • Makefile additions for reproducible builds and asmflags #3444 (@Foxboron)
    • locking: add flag to control modification of ignored files #3409 (@bk2204)
    • build package for Ubuntu 18.10 aka Cosmic #3402 (@torbjoernk)
    • Add support for retries with delays (ex. rate limiting) #3449 (@zkry)
    • Trim embedded paths out of binaries #3443 (@bk2204)
    • Ensure 32-bit Git LFS binaries can handle files larger than 4 GiB #3426 (@bk2204)
    • Support attribute macros #3391 (@bk2204)
    • tasklog: don't log progress status when stdout is not a tty #3349 (@steffengodskesen)
    • locking: cache JSON response from server #3253 (@mstrap)
    • tq: enable transfer debugging when GIT_CURL_VERBOSE is set #3341 (@bk2204)


    • .circleci: don't use 'brew prune' #3514 (@ttaylorr)
    • t/ remove unnecessary test #3513 (@ttaylorr)
    • docs/man: fix inconsistency in 'git-lfs-ls-files(1)' #3496 (@ttaylorr)
    • lfshttp: close body on redirect #3479 (@bk2204)
    • status: handle deleted files gracefully #3482 (@bk2204)
    • Fix hang in prune with too few file descriptors #3460 (@bk2204)
    • Fix parameter name on List Locks API Documentation #3477 (@Erwyn)
    • TST: Trim security context when checking permissions. #3476 (@QuLogic)
    • command/env: ensure we honor lfs.url #3470 (@bk2204)
    • Fix swapped case sensitivity in patterns #3433 (@bk2204)
    • core.sharedRepository improvements for directories #3417 (@bk2204)
    • Update the doc of whitelisted .lfsconfig keys #3423 (@keiko713)
    • Rewrite URL config-matching #3392 (@PastelMobileSuit)
    • git: close blob objects when finished #3379 (@bk2204)
    • Avoid hang in repos cloned with --shared or --reference #3383 (@bk2204)
    • commands/command_status.go: require a working copy #3378 (@ttaylorr)
    • Fix test server API #3377 (@bk2204)
    • vendor: don't remove necessary dependencies #3356 (@ttaylorr)
    • filepathfilter: don't say file is both accepted and rejected #3360 (@bk2204)
    • Support pushInsteadOf aliases when determining endpoints #3353 (@bk2204)
    • Close attributes file #3347 (@mbsulliv)
    • Fix humanize's FormatByteRate() to work with 0s duration #3340 (@saracen)


    • Release automation #3510 (@bk2204)
    • docs/man: update git-lfs-fetch(1) manpage #3488 (@ttaylorr)
    • Update Cobra #3483 (@bk2204)
    • Run go generate only on Windows #3480 (@bk2204)
    • docs/man/git-lfs-migrate: make examples less confusing #3424 (@bk2204)
    • Modify logic of 'migrate info' to process extensionless files #3458 (@zkry)
    • Improve error message on missing object #3398 (@bk2204)
    • docs/man: suggest using Git configuration for LFS keys #3394 (@bk2204)
    • Document default value of migrate info --top= #3387 (@mloskot)
    • Clarify minimum git version #3327 (@carlwgeorge)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 7 Debian 8 Debian 9

    SHA-256 hashes:

    git-lfs-darwin-386-v2.7.0.tar.gz c99a205ad3297b8b42ee83c7e97d726ef922745820a94c37d6fbc7b4e5c8104e

    git-lfs-darwin-amd64-v2.7.0.tar.gz 838dbb8dde04b37512e0a6d7f88aa0f441c22f93bdd64e068f90ac249122d8b2

    git-lfs-freebsd-386-v2.7.0.tar.gz 9e78e9bcf4f9831089b05c900c586d3667f1627983560894546f5e36c7dd49a6

    git-lfs-freebsd-amd64-v2.7.0.tar.gz f357be15a22b066de4d869e9522e7d8bfe9949e6946a8fb7d0bc89c02917e6e4

    git-lfs-linux-386-v2.7.0.tar.gz 4d1b729a57b532afdaf42a284d3ed6904707154c2df6f589d0d17fe93ae66ec6

    git-lfs-linux-amd64-v2.7.0.tar.gz a559a2884fe309fbd34f2930e7b280e4f89e4f598666f1730dc89239692b28a7

    git-lfs-linux-arm64-v2.7.0.tar.gz b9976c1e675a930349dbc935ac11441b2c6432a18c13e61df3c31e3eca6871bd

    git-lfs-v2.7.0.tar.gz 245737f6fb2fc3476954329531042f6da1823b86bc13a0b32935bd3bb4ad5397 faf682631b79588ea594229079b20265be674d7ba0e9438a788aa5468a4f3fac dcb77c822e0dfe1b4ec8f4bf80c6a3a801f96f75a08a3428f36c726a1be7b28f

    git-lfs-windows-v2.7.0.exe f66d7f603e04244fd2007528351db0bb11e2b286ab261a6983bc3972171cc989

    sha256sums.asc 9a6a31b0675a0bd473a843aa9681095e4dc5cf9f4e23de76785c5dd9c300cfb1

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.7.0.tar.gz(3.47 MB)
    git-lfs-darwin-amd64-v2.7.0.tar.gz(3.69 MB)
    git-lfs-freebsd-386-v2.7.0.tar.gz(3.32 MB)
    git-lfs-freebsd-amd64-v2.7.0.tar.gz(3.53 MB)
    git-lfs-linux-386-v2.7.0.tar.gz(3.33 MB)
    git-lfs-linux-amd64-v2.7.0.tar.gz(3.53 MB)
    git-lfs-linux-arm64-v2.7.0.tar.gz(3.20 MB)
    git-lfs-v2.7.0.tar.gz(1.59 MB) MB) MB)
    git-lfs-windows-v2.7.0.exe(5.39 MB)
    sha256sums.asc(1.99 KB)
  • v2.6.1(Dec 3, 2018)

    This release contains miscellaneous bug fixes since v2.6.0. Most notably, release v2.6.1 restores support for alternate repositories, which was accidentally broken in v2.6.0.


    • git: close blob objects when finished #3379 (@bk2204)
    • Avoid hang in repos cloned with --shared or --reference #3383 (@bk2204)
    • vendor: don't remove necessary dependencies #3356 (@ttaylorr)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 7 Debian 8 Debian 9

    SHA-256 hashes:

    git-lfs-darwin-386-v2.6.1.tar.gz db0be63d107d16681d86e1edfac2d6d4c05eac152af036cf99b9355de320d7db

    git-lfs-darwin-amd64-v2.6.1.tar.gz 84ac4953c55bbaf87efd1c3d5b7778b1cf0b257025d2a86d709a2bf301c32c8b

    git-lfs-freebsd-386-v2.6.1.tar.gz 8cfa48bac17de932f6aa897279bd748da8572aecb2ac681b54a81dd448e13178

    git-lfs-freebsd-amd64-v2.6.1.tar.gz ca2619d8ef5c9c79be5918d83fc5c1cb50e286a56dc9ff83cf104b80b69773c0

    git-lfs-linux-386-v2.6.1.tar.gz 4c78f2525c6cdf0130ed2520280f11f60fef33687fdf9ff6489aa0f6b524d9c3

    git-lfs-linux-amd64-v2.6.1.tar.gz c098092be413915793214a570cd51ef46089b6f6616b2f78e35ba374de613b5b

    git-lfs-linux-arm64-v2.6.1.tar.gz 5624ca015537333b459fa3817da7257a73ed612d958eccc596e6118b4bf6a5c6

    git-lfs-v2.6.1.tar.gz df7fcd3a72f3b8916b2d9a591f1435ea7479f397257508c335cb5ba82c040f4a 90bbeb7dc4ada394624d3a2675fd51dd4873753a56fb197b17bc01c9fcc91398 35d0a62c5e36131b7ba65352146c585eaf1f33d7a229b9471082f49fca53b952

    git-lfs-windows-v2.6.1.exe 6a5c78fe5fbba3a23d739b4c3c19c9047b0dfb8eb008013745f6cbf6875f3c55

    sha256sums.asc 83bdc70fc6c6532ef49de2af76a8c79ecbb8989324f8d359648da0ece19d8a32

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.6.1.tar.gz(3.38 MB)
    git-lfs-darwin-amd64-v2.6.1.tar.gz(3.60 MB)
    git-lfs-freebsd-386-v2.6.1.tar.gz(3.24 MB)
    git-lfs-freebsd-amd64-v2.6.1.tar.gz(3.44 MB)
    git-lfs-linux-386-v2.6.1.tar.gz(3.24 MB)
    git-lfs-linux-amd64-v2.6.1.tar.gz(3.44 MB)
    git-lfs-linux-arm64-v2.6.1.tar.gz(3.12 MB)
    git-lfs-v2.6.1.tar.gz(1.55 MB) MB) MB)
    git-lfs-windows-v2.6.1.exe(5.25 MB)
    sha256sums.asc(1.89 KB)
  • v2.6.0(Nov 1, 2018)

    This release adds better support for redirecting network calls from a Git LFS API server to one that requires a different authentication mode, builds Git LFS on Go 1.11, and numerous other bug fixes and modifications.

    We would like to extend a special thanks to the following open-source contributors:

    • @andyneff for updating our release targets
    • @gtsiolis: for removing the deprecated git lfs clone from the listing of supported Git LFS commands
    • @jsantell for fixing a formatting issue in the INCLUDE AND EXCLUDE man page section
    • @mmlb for adding a release target for Linux arm64
    • @skashyap7 for adding the 'git lfs track -n'
    • @Villemoes: for modernizing the Git LFS installation procedure on Debian.


    • commands: list explicitly excluded patterns separately #3320 (@bk2204)
    • Uninstall improvements #3326 (@bk2204)
    • config: honor GIT_AUTHOR_DATE and GIT_COMMITTER_DATE #3314 (@bk2204)
    • Add new .netrc credential helper #3307 (@PastelMobileSuit)
    • Honor umask and core.sharedRepository #3304 (@bk2204)
    • Support listing only filename tracked by git lfs using --name (-n) option #3271 (@skashyap7)
    • all: use Go 1.11.1 in CI #3298 (@ttaylorr)
    • lfsapi/tq: Have DoWithAuth() caller determine URL Access Mode #3293 (@PastelMobileSuit)
    • commands: undeprecate checkout #3303 (@bk2204)
    • Checkout options for conflicts #3296 (@bk2204)
    • Makefile: build source tarballs for release #3283 (@bk2204)
    • Encrypted SSL key support #3270 (@bk2204)
    • Add support for core.sshCommand #3235 (@bk2204)
    • gitobj-based Object Scanner #3236 (@bk2204)
    • new core team members #3217 (@ttaylorr)
    • Add build and releases for linux arm64 #3196 (@mmlb)
    • Update packagecloud.rb #3210 (@andyneff)
    • all: use Go modules instead of Glide #3208 (@ttaylorr)
    • all: use Go 1.11 in CI #3203 (@ttaylorr)


    • Fix formatting of INCLUDE AND EXCLUDE (REFS) #3330 (@jsantell)
    • go.sum: add missing entries #3319 (@bk2204)
    • Ensure correct syntax for commit headers in lfs migrate import #3313 (@bk2204)
    • Clean up trailing whitespace #3299 (@bk2204)
    • commands: unambiguously resolve remote references #3285 (@ttaylorr)
    • Expand custom transfer args by using the shell #3259 (@bk2204)
    • Canonicalize paths properly on Windows #3277 (@bk2204)
    • debian/prerm: add --system flag #3272 (@Villemoes)
    • t: make testsuite run under git rebase -x #3262 (@bk2204)
    • git/gitattr: parse 'set' attributes #3255 (@ttaylorr)
    • t: avoid panic in lfstest-customadapter #3243 (@bk2204)
    • t: avoid using shell variables in printf's first argument #3242 (@bk2204)
    • lfsapi: handle SSH hostnames and aliases without users #3230 (@bk2204)
    • commands/command_ls_files.go: ignore index with argument #3219 (@ttaylorr)
    • commands/command_migrate_import.go: install hooks #3227 (@ttaylorr)
    • t: mark test sources as .PHONY #3228 (@ttaylorr)
    • Pass GIT_SSH_COMMAND to the shell #3199 (@bk2204)
    • Tidy misformatted files #3202 (@bk2204)
    • config: expand core.hooksPath #3212 (@ttaylorr)
    • locks: manage write permissions of ignored files #3190 (@ttaylorr)


    • :nail_care: #3325 (@ttaylorr)
    • Update CONTRIBUTING #3317 (@bk2204)
    • go.mod: depend on tagged gitobj #3311 (@ttaylorr)
    • RFC: SSH protocol #3290 (@bk2204)
    • Remove git lfs clone command from man #3301 (@gtsiolis)
    • use GitHub issues instead #3286 (@ttaylorr)
    • docs: add note about closing release milestone #3274 (@bk2204)
    • CI improvements #3268 (@bk2204)
    • docs/howto: document our release process #3261 (@ttaylorr)
    • Create new lfshttp package #3244 (@PastelMobileSuit)
    • CONTRIBUTING: update required go version #3232 (@PastelMobileSuit)
    • go.mod: use latest #3223 (@ttaylorr)
    • go.mod: pin to v1.0.0 #3218 (@ttaylorr)
    • Update #3193 (@srl295)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 7 Debian 8 Debian 9

    SHA-256 hashes:

    git-lfs-darwin-386-v2.6.0.tar.gz 88e10ea64ebf734cb7e87448699b4edd562fc0a5f468890926464719c374926a

    git-lfs-darwin-amd64-v2.6.0.tar.gz 42bf89b9775a69ab7dbe65847e174fe802d54ce6ed0d553bd497c740f2803f60

    git-lfs-freebsd-386-v2.6.0.tar.gz a6c3b9cfeb14fbe0b3b12c869d6f1f65dfd394dff46f2ff9d8ada5e706a58583

    git-lfs-freebsd-amd64-v2.6.0.tar.gz 9eaaf52bb8d647765cfd3b1c54bdf444334792767023b5482bdad783f5e15dd8

    git-lfs-linux-386-v2.6.0.tar.gz d9e83e020c653324077542a1e6d14e86ea8a2cfc151d23d68ddf22547f9f8e0f

    git-lfs-linux-amd64-v2.6.0.tar.gz 43e9311bdded82d43c574b075aafaf56681a3450c1ccf59cce9d362acabf1362

    git-lfs-linux-arm64-v2.6.0.tar.gz 574192d485ce84495fe3f228a57e3ef80f93635ae4677ac4a189425b4c9aeb0a

    git-lfs-v2.6.0.tar.gz 590cd87b307c342d50219cef47bfcf54673c616413cf9d668e17a01785eb2158 7fa3475c60221837860138b4fd0fd0ad1213a5e49c596fdb0aac8932ca7a20a5 f1312d00e435c16c8d19d914d5108db6a5ddbee1badb214c66f22cfa5d18b279

    git-lfs-windows-v2.6.0.exe 4c277aa36164be6555b93cd3017966c40102ed511322a0917a4c36baa3bf3366

    sha256sums.asc 4268c5fcbf5761230436a6709904366e8d037fa4918c469f81549b66c444ef84

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.6.0.tar.gz(3.38 MB)
    git-lfs-darwin-amd64-v2.6.0.tar.gz(3.60 MB)
    git-lfs-freebsd-386-v2.6.0.tar.gz(3.24 MB)
    git-lfs-freebsd-amd64-v2.6.0.tar.gz(3.44 MB)
    git-lfs-linux-386-v2.6.0.tar.gz(3.24 MB)
    git-lfs-linux-amd64-v2.6.0.tar.gz(3.43 MB)
    git-lfs-linux-arm64-v2.6.0.tar.gz(3.11 MB)
    git-lfs-v2.6.0.tar.gz(1.53 MB) MB) MB)
    git-lfs-windows-v2.6.0.exe(5.24 MB)
    sha256sums.asc(1.89 KB)
  • v2.5.2(Sep 17, 2018)


    • config: Treat [host:port]:path URLs correctly #3226 (@saschpe)
    • tq: Always provide a Content-Type when uploading files #3201 (@bk2204)
    • commands/track: Properly lfs track files with escaped characters in their name #3192 (@leonid-s-usov)


    • packagecloud.rb: remove older versions #3210 (@andyneff)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 7 Debian 8 Debian 9

    SHA-256 hashes:

    git-lfs-darwin-386-v2.5.2.tar.gz ef24292ace3dde3331a61e141ac2778a9613cabc8196bb0970d86a40515fc03b

    git-lfs-darwin-amd64-v2.5.2.tar.gz eedb80c79f1d3106aa5f1496ddc505e1c1c86c290293d81fb20c5358c615fd74

    git-lfs-freebsd-386-v2.5.2.tar.gz 82dc371ef5adfc4f4ba20f9fc363f922758c20635533a1afc1d67601e35d6774

    git-lfs-freebsd-amd64-v2.5.2.tar.gz c5aa365ae7bf503a06ebfd8ae4e510958fd9a7a62f4c4889288ef0bd08edb0cd

    git-lfs-linux-386-v2.5.2.tar.gz 4d7237a0221698e327ade54b78262935d4e05a415a00ab28643d71aaf3b450f7

    git-lfs-linux-amd64-v2.5.2.tar.gz 624396e8994578ac38c3e5987889be56dba453c378c0675d56cffbc5b8972aa5

    git-lfs-windows-v2.5.2.exe 0428979bf5ec6d3e9008456e43b7dd72f04db353485bcc1175cab32e8c83110e 6cf7d4c169a17dd5b326f903708829e7471368b7e1235ab150ce77555f47b213 d5276eb61dea32b3978c2f68c5cf3ad4a45bf70f1a245ddc86b555db7299c7c9

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.5.2.tar.gz(2.82 MB)
    git-lfs-darwin-amd64-v2.5.2.tar.gz(2.98 MB)
    git-lfs-freebsd-386-v2.5.2.tar.gz(2.68 MB)
    git-lfs-freebsd-amd64-v2.5.2.tar.gz(2.82 MB)
    git-lfs-linux-386-v2.5.2.tar.gz(2.68 MB)
    git-lfs-linux-amd64-v2.5.2.tar.gz(2.82 MB) MB) MB)
    git-lfs-windows-v2.5.2.exe(4.13 MB)
  • v2.5.1(Aug 2, 2018)

    This release contains miscellaneous bug fixes since v2.5.0. Most notably, release v2.5.1 allows a user to disable automatic Content-Type detection (released in v2.5.0) via git config lfs.contenttype false for hosts that do not support it.


    • tq: make Content-Type detection disable-able #3163 (@ttaylorr)


    • Makefile: add explicit rule for commands/mancontent_gen.go #3160 (@jj1bdx)
    • script/ mark as executable #3155 (@ttaylorr)
    • config: add origin to remote list #3152 (@PastelMobileSuit)


    • docs/man/mangen.go: don't show non-fatal output without --verbose #3168 (@ttaylorr)
    • update copyright year #3156 (@IMJ355)
    • Makefile: silence some output #3164 (@ttaylorr)
    • Makefile: list prerequisites for resource.syso #3153 (@ttaylorr)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 7 Debian 8 Debian 9

    SHA-256 hashes:

    git-lfs-darwin-386-v2.5.1.tar.gz 6274408a68205557341c966e58d08abec5df378260efac83d7bcd8a8cda62ad2

    git-lfs-darwin-amd64-v2.5.1.tar.gz 2ade1f42d51b012db0658838d6e1050af7e269d46c84d978bca82d74788e1c2e

    git-lfs-freebsd-386-v2.5.1.tar.gz fa020063f913146847319e315738dae671268fdb6bf81d5abcc13755e8a1dbf2

    git-lfs-freebsd-amd64-v2.5.1.tar.gz 59d214a31fc93a8e3e70a78b4fd634af8699ed3264b04a655496b73ef77cb5fc

    git-lfs-linux-386-v2.5.1.tar.gz 257164474618e3cc8e8a78d4bcaa48479dad082cc7b711b3ce380514afd046c1

    git-lfs-linux-amd64-v2.5.1.tar.gz 9565fa9c2442c3982567a3498c9352cda88e0f6a982648054de0440e273749e7 64eb8782df371e5ef3b8cf07134a745be2b782920726ba2b924cc3d56b7c03ed 62ce983c2e4074b58bc88f20c12e15f00d2fb27acaf7219c860f1fd21af0f991

    git-lfs-windows-v2.5.1.exe 596de98971f5084d7f249a324c5d935f2171d62445beb1d95f15d78c6e4ce0dc

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.5.1.tar.gz(3.34 MB)
    git-lfs-darwin-amd64-v2.5.1.tar.gz(3.55 MB)
    git-lfs-freebsd-386-v2.5.1.tar.gz(3.20 MB)
    git-lfs-freebsd-amd64-v2.5.1.tar.gz(3.39 MB)
    git-lfs-linux-386-v2.5.1.tar.gz(3.20 MB)
    git-lfs-linux-amd64-v2.5.1.tar.gz(3.39 MB) MB) MB)
    git-lfs-windows-v2.5.1.exe(4.13 MB)
  • v2.5.0(Jul 26, 2018)

    This release adds three new migration modes, updated developer ergonomics, and a handful of bug fixes to Git LFS.

    We would like to extend a special thanks to the following open-source contributors:

    • @calavera for fixing a broken Go test and adding support for custom Content-Type headers in #3137 and #3138.
    • @cbuehlmann for adding support for encoded character names in filepaths via #3093.
    • @larsxschneider for changing the default value of lfs.allowincompletepush in #3109.
    • @NoEffex for supporting TTL in SSH-based authentication tokens via #2867.
    • @ssgelm for adding 'go generate' to our Debian packages via #3083.


    • Makefile: replace many scripts with make targets #3144 (@ttaylorr)
    • {.travis,appveyor}.yml: upgrade to Go 1.10.3 #3146 (@ttaylorr)
    • t: run tests using prove #3125 (@ttaylorr)
    • commands/migrate: infer wildmatches with --fixup #3114 (@ttaylorr)
    • Retry SSH resolution 5 times #2934 (@stanhu)
    • Implement migrate export subcommand #3084 (@PastelMobileSuit)
    • Add --no-rewrite flag to migrate import command #3029 (@PastelMobileSuit)


    • t: fix contains_same_elements() fn #3145 (@PastelMobileSuit)
    • commands: warn if working copy is dirty #3124 (@ttaylorr)
    • Ensure provided remote takes precedence over configured pushRemote #3139 (@PastelMobileSuit)
    • Fix proxy unit tests. #3138 (@calavera)
    • commands/command_migrate.go: loosen meaning of '--everything' #3121 (@ttaylorr)
    • lfsapi: don't query askpass for given creds #3126 (@PastelMobileSuit)
    • config/git_fetcher.go: mark 'lfs.allowincompletepush' as safe #3113 (@ttaylorr)
    • fs: support multiple object alternates #3116 (@ttaylorr)
    • commands/checkout: checkout over read-only files #3120 (@ttaylorr)
    • test/ look for 64 character SHA-256's #3119 (@ttaylorr)
    • config/config.go: case-insensitive error search #3098 (@ttaylorr)
    • Encoded characters in pathnames #3093 (@cbuehlmann)
    • Support default TTL for authentication tokens acquired via SSH #2867 (@NoEffex)
    • commands/status.go: relative paths outside of root #3080 (@ttaylorr)
    • Run go generate on commands in deb build #3083 (@ssgelm)
    • lfsapi: prefer proxying from gitconfig before environment #3062 (@ttaylorr)
    • commands/track: respect global- and system-level gitattributes #3076 (@ttaylorr)
    • git/git.go: pass --multiple to git-fetch(1) when appropriate #3063 (@ttaylorr)
    • commands/checkout: fix inaccurate messaging #3055 (@ttaylorr)
    • commands/migrate: do not migrate empty commits #3054 (@ttaylorr)
    • git/odb: retain trailing newlines in commit messages #3053 (@ttaylorr)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 7 Debian 8 Debian 9

    SHA-256 hashes:

    7aac6909c54365597d10b579a26511ae17df2d1c8a62c555b6f95bf3276eda5d git-lfs-darwin-386-v2.5.0.tar.gz

    41c607f2a73eec2cc28464d6c867819139ced137a8fa9bdc13c3bf3b98d6bfb2 git-lfs-darwin-amd64-v2.5.0.tar.gz

    46dd24437a0234211e92f93d620c526752aeee3c5211bffdc5f39f86db29bb2a git-lfs-freebsd-386-v2.5.0.tar.gz

    ee78451c89aee9dbbb797ecafc4869637feab9f522eda3c6c6f0d914f470e76a git-lfs-freebsd-amd64-v2.5.0.tar.gz

    27082b4a9ad6d6566c4f4e753ad4923c7a67f88987d9db6ba39312111545a683 git-lfs-linux-386-v2.5.0.tar.gz

    d840829bca0827fb14537fbcd6fdba192dd74a67d0d5a6fb12d060c14a876ba7 git-lfs-linux-amd64-v2.5.0.tar.gz

    f4974208ade2097f9ce2c2d30ab18924d135fbb8275635a5aabab9c03bb8f493 git-lfs-windows-2.5.0.exe



    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-v2.5.0.tar.gz(2.82 MB)
    git-lfs-darwin-amd64-v2.5.0.tar.gz(2.97 MB)
    git-lfs-freebsd-386-v2.5.0.tar.gz(2.67 MB)
    git-lfs-freebsd-amd64-v2.5.0.tar.gz(2.82 MB)
    git-lfs-linux-386-v2.5.0.tar.gz(2.68 MB)
    git-lfs-linux-amd64-v2.5.0.tar.gz(2.82 MB) MB) MB)
    git-lfs-windows-v2.5.0.exe(4.12 MB)
  • v2.4.2(May 29, 2018)


    • lfsapi: re-authenticate HTTP redirects when needed #3028 (@ttaylorr)
    • lfsapi: allow unknown keywords in netrc file(s) #3027 (@ttaylorr)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 7 Debian 8 Debian 9

    SHA-256 hashes:

    git-lfs-windows-2.4.2.exe c3acb7d24d06dd4b9458dcfaba0e322775c4de8ce955c8682cdd53f5e79049a3 c67df92538a88ce8f729da6e2edd0ac609450790eaec4b60eba59c04ba92f3b9 4c95d8e842ef55013c8ac99c4ffcad2a20a41bc41bd8e0943a228a03e07cd976

    git-lfs-darwin-386-2.4.2.tar.gz 8c036d9803d93d08b88dee7613fd364cbf048960322ce45ac71b894d63e576cd

    git-lfs-darwin-amd64-2.4.2.tar.gz 5efdad9722712c6fc039c1ee824c46b3f3c3f8794b2ef8a9776ff8083a3d5e97

    git-lfs-freebsd-386-2.4.2.tar.gz 622d492d0481eb5ad0bdd64d15a1945760806b7bceaf15ca97b28cd38f300c9c

    git-lfs-freebsd-amd64-2.4.2.tar.gz c37d895953472f0ff46d69c033e1230c48ac1e8336119a1124eb5629ccb46d20

    git-lfs-linux-386-2.4.2.tar.gz d926b5b468c3b03d1b647e2d34248c54d2d6c3dc5de9baf215206be321c5a4f7

    git-lfs-linux-amd64-2.4.2.tar.gz 29529b6c7afb5f656860d5fad7c054baaeded95ecbda040592a58dbcdbb38fe0

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-2.4.2.tar.gz(2.79 MB)
    git-lfs-darwin-amd64-2.4.2.tar.gz(2.94 MB)
    git-lfs-freebsd-386-2.4.2.tar.gz(2.65 MB)
    git-lfs-freebsd-amd64-2.4.2.tar.gz(2.79 MB)
    git-lfs-linux-386-2.4.2.tar.gz(2.65 MB)
    git-lfs-linux-amd64-2.4.2.tar.gz(2.79 MB)
    git-lfs-windows-2.4.2.exe(3.87 MB) MB) MB)
  • v2.4.1(May 22, 2018)

    This release fixes a handful of bugs found and fixed since v2.4.0. In particular, Git LFS no longer panic()'s after invalid API responses, can correctly run 'fetch' on SHAs instead of references, migrates symbolic links correctly, and avoids writing to $HOME/.gitconfig more than is necessary.

    We would like to extend a "thank you" to the following contributors for their gracious patches:

    • @QuLogic fixed an issue with running tests that require credentials
    • @patrickmarlier made it possible for 'git lfs migrate import' to work correctly with symbolic links.
    • @zackse fixed an inconsistency in
    • @zanglang fixed an inconsistency in

    Git LFS would not be possible without generous contributions from the open-source community. For these, and many more: thank you!


    • script/packagecloud.rb: release on Ubuntu Bionic #2961 (@ttaylorr)


    • lfsapi: canonicalize extra HTTP headers #3010 (@ttaylorr)
    • commands/lock: follow symlinks before locking #2996 (@ttaylorr)
    • lfs/attribute.go: remove default value from upgradeables #2994 (@ttaylorr)
    • git: include SHA1 in ref-less revisions #2982 (@ttaylorr)
    • Do not migrate the symlinks to LFS objects. #2983 (@patrickmarlier)
    • commands/uninstall: do not log about global hooks with --local #2976 (@ttaylorr)
    • commands/run.go: exit 127 on unknown sub-command #2969 (@ttaylorr)
    • commands/{un,}track: perform "prefix-agnostic" comparisons #2955 (@ttaylorr)
    • commands/migrate: escape paths before .gitattributes #2933 (@ttaylorr)
    • commands/ls-files: do not accept '--all' after '--' #2932 (@ttaylorr)
    • tq: prevent uint64 underflow with invalid API response #2902 (@ttaylorr)


    • test/test-env: skip comparing GIT_EXEC_PATH #3015 (@ttaylorr)
    • remove reference to CLA from contributor's guide #2997 (@zackse)
    • .gitattributes link is broken #2985 (@zanglang)
    • commands: make --version a synonym for 'version' #2968, #3017 (@ttaylorr)
    • test: ensure that git-mergetool(1) works with large files #2939 (@ttaylorr)
    • note the correct PackageCloud URL #2960 (@ttaylorr)
    • mention note about git lfs track retroactively #2948 (@ttaylorr)
    • reorganize into Core Team, Alumni #2941 (@ttaylorr)
    • :nail_care: #2942 (@ttaylorr)
    • circle.yml: upgrade to 'version: 2' syntax #2928 (@ttaylorr)
    • Use unique repo name for tests that require credentials. #2901 (@QuLogic)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 7 Debian 8 Debian 9

    SHA-256 hashes:

    git-lfs-linux-386-2.4.1.tar.gz ee94b82029f50e38deb8f60ef5db3657e49f05476f24988606515609058bf98e

    git-lfs-linux-amd64-2.4.1.tar.gz 97e2bd8b7b4dde393eef3dd37013629dadebddefcdf27649b441659bdf4bb636 887e9927abe79f8c94fe2464578929a8607084b641fdc07f39a4088e93d1a089 ebbab07348dbe71a5c20bfbdfafe4dbbafc8deacea6e6bf4143556721c860821

    git-lfs-windows-2.4.1.exe 8d69a79ec48a63a02e02fa5b34023cd49b108ff4bad8a5526f543987c9df8371

    git-lfs-darwin-386-2.4.1.tar.gz 23a7404e6f400d1c313f335c6122af55d3c35b2501095c903ce910956b37e504

    git-lfs-darwin-amd64-2.4.1.tar.gz e41ac4988bd6bd38faf7c17562273cb57099b3650e50f66013aa36d62aa7448a

    git-lfs-freebsd-386-2.4.1.tar.gz 38a2c2299a3ff25d489addf60f77e595c5759e42e8535f876efb73811f1140a9

    git-lfs-freebsd-amd64-2.4.1.tar.gz 956be2f579a8931d84930bb1171703f79ff523b8a8f23dbd0aa161dd33582e35

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-2.4.1.tar.gz(2.79 MB)
    git-lfs-darwin-amd64-2.4.1.tar.gz(2.95 MB)
    git-lfs-freebsd-386-2.4.1.tar.gz(2.65 MB)
    git-lfs-freebsd-amd64-2.4.1.tar.gz(2.79 MB)
    git-lfs-linux-386-2.4.1.tar.gz(2.65 MB)
    git-lfs-linux-amd64-2.4.1.tar.gz(2.79 MB)
    git-lfs-windows-2.4.1.exe(3.87 MB) MB) MB)
  • v2.4.0(Mar 3, 2018)

    This release introduces a rewrite of the underlying file matching engine, expands the API to include relevant refspecs for individual requests, standardizes the progress output among commands, and more.

    Please note: in the next MAJOR release (v3.0.0) the semantic meaning behind --include and --exclude flags will change. As the details of exactly which existing patterns will no longer function as previously are known, we will indicate them here. Any --include or --exclude patterns used in v2.3.0 or earlier are expected to work as previously in this release.

    This release would not be possible without the open-source community. Specifically, we would like to thank:

    • @larsxschneider: for contributing fixes to the filter operation in git lfs fsck, and git lfs prune, as well as the bug report leading to the filepathfilter changes.
    • @yfronto: for adding new Linux release targets.
    • @stffabi: for adding support for NTLM with SSPI on Windows.
    • @jeffreydwalter: for fixing memory alignment issues with sync/atomic on 32-bit architectures.
    • @b4mboo: for adding a LFS configuration key to the list of safe configuration options.

    Without the aforementioned indviduals, this release would not have been possible. Thank you!


    • Support wildmatch-compliant options in --include, --exclude
      • filepathfilter: implement using wildmatch #2875 (@ttaylorr)
      • test: add wildmatch migration tests #2888 (@larsxschneider, @ttaylorr)
    • Expand the specification to include relevant refspecs
      • verify locks against each ref being pushed #2706 (@technoweenie)
      • Batch send refspec take 2 #2809 (@technoweenie)
      • Run 1 TransferQueue per uploaded ref #2806 (@technoweenie)
      • Locks/verify: full refspec #2722 (@technoweenie)
      • send remote refspec for the other lock commands #2773 (@technoweenie)
    • Standardize progress meter output and implementation
      • tq: standardized progress meter formatting #2811 (@ttaylorr)
      • commands/fetch: unify formatting #2758 (@ttaylorr)
      • commands/prune: unify formatting #2757 (@ttaylorr)
      • progress: use git/githistory/log package for formatting #2732 (@ttaylorr)
      • progress: remove *progress.Meter #2762 (@ttaylorr)
      • tasklog: teach *Logger how to enqueue new *SimpleTask's #2767 (@ttaylorr)
      • progress: remove spinner.go #2759 (@ttaylorr)
    • Teach new flags, functionality to git lfs ls-files
      • commands: teach '--all' to git lfs ls-files #2796 (@ttaylorr)
      • commands/ls-files: show cached, tree-less LFS objects #2795 (@ttaylorr)
      • commands/ls-files: add --include, --exclude #2793 (@ttaylorr)
      • commands/ls-files: add '--size' flag #2764 (@ttaylorr)
    • Add new flags, functionality to git lfs migrate
      • commands/migrate: support '^'-prefix refspec in arguments #2785 (@ttaylorr)
      • commands/migrate: add '--skip-fetch' for offline migrations #2738 (@ttaylorr)
      • git: prefer sending revisions over STDIN than arguments #2739 (@ttaylorr)
    • Release to new operating systems
      • release lfs for ubuntu/artful too #2704 (@technoweenie)
      • Adding Mint Sylvia to packagecloud.rb script #2829 (@yfronto)
    • New functionality in package lfsapi
      • NTLM authentication with SSPI on windows #2871 (@stffabi)
      • lfsapi/auth: teach DoWithAuth to respect http.extraHeaders #2733 (@ttaylorr)
      • add support for url-specific proxies #2651 (@technoweenie)
    • Code cleanup in git.Config, package localstorage
      • Tracked remote #2700 (@technoweenie)
      • Replace git.Config #2692 (@technoweenie)
      • Replace localstorage #2689 (@technoweenie)
      • Remove last global config #2687 (@technoweenie)
      • Git config refactor #2676 (@technoweenie)


    • all: fix 32-bit alignment issues with sync/atomic #2883 (@ttaylorr)
    • all: memory alignment issues on 32-bit systems. #2880 (@jeffreydwalter)
    • command/migrate: don't migrate remote references in bare repositories #2769 (@ttaylorr)
    • commands/ls-files: behave correctly before initial commit #2794 (@ttaylorr)
    • commands/migrate: allow for ambiguous references in migrations #2734 (@ttaylorr)
    • commands: fill in missing printf arg #2678 (@technoweenie)
    • config: Add lfs.locksverify to safe keys. #2797 (@b4mboo)
    • don't replace pointers with objects if clean filter is not configured #2626 (@technoweenie)
    • fsck: attach a filter to exclude unfetched items from fsck #2847 (@larsxschneider)
    • git/githistory: copy entries from cache, elsewhere #2884 (@ttaylorr)
    • git/githistory: migrate annotated tags correctly #2780 (@ttaylorr)
    • git/odb: don't print extra newline after commit message #2784 (@ttaylorr)
    • git/odb: extract identifiers from commits verbatim #2751 (@wsprent)
    • git/odb: implement parsing for annotated *Tag's #2778 (@ttaylorr)
    • git/odb: retain newlines when parsing commit messages #2786 (@ttaylorr)
    • lfs: PointerScanner is nil after error, so don't close #2699 (@technoweenie)
    • lfsapi: Cred helper improvements #2695 (@technoweenie)
    • lfsapi: retry requests changing access from none IF Auth header is empty #2621 (@technoweenie)
    • prune: always prune excluded paths #2851 (@larsxschneider)
    • status: fix incorrect formatting with unpushed objects #2746 (@ttaylorr)
    • tasklog: don't drop updates in PercentageTask #2755 (@ttaylorr)
    • test: Fix integration test early exit #2735 (@technoweenie)
    • test: generate random repo names with fs-safe characters #2698 (@technoweenie)


    • all: Nitpicks #2821 (@technoweenie)
    • all: introduce package 'tlog' #2747 (@ttaylorr)
    • all: remove CLA #2870 (@MikeMcQuaid)
    • build: Specify the embedded Windows icon as part of versioninfo.json #2770 (@sschuberth)
    • config,test: Testlib no global config #2709 (@mathstuf)
    • config: add PushRemote() for checking branch.*.pushRemote and remote.pushDefault first #2715 (@technoweenie)
    • docs: Added documentation for git-lfs-ls-files' */- output. #2719 (@bilke)
    • docs: Uninstall man page improvements #2730 (@dpursehouse)
    • docs: Update usage info for post-checkout #2830 (@proinsias)
    • docs: add 'git lfs prune' to main man page #2849 (@larsxschneider)
    • docs: use consistent casing for Git #2850 (@larsxschneider)
    • git/githistory: have *RefUpdater hold *odb.ObjectDatabase reference #2779 (@ttaylorr)
    • progress: move CopyCallback (& related) to package 'tools' #2749 (@ttaylorr)
    • progress: move *progressLogger implementation to package 'tools' #2750 (@ttaylorr)
    • refspec docs #2820 (@technoweenie)
    • script/test: run 'go tool vet' during testing #2788 (@ttaylorr)
    • tasklog: introduce *SimpleTask #2756 (@ttaylorr)
    • test: Ignore comment attr lines #2708 (@mathstuf)
    • test: Wait longer for test lfs server to start. #2716 (@QuLogic)
    • test: ensure commented attr lines are ignored #2736 (@ttaylorr)
    • tools/humanize: add 'FormatByteRate' to format transfer speed #2810 (@ttaylorr)
    • vendor: update 'xeipuuv/gojsonpointer' #2846 (@ttaylorr)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 7 Debian 8 Debian 9

    SHA-256 hashes:

    git-lfs-freebsd-386-2.4.0.tar.gz 146227e9e7545f2fadc24756b99e96741ca6c679c9f4833728ed870ee9cea30b

    git-lfs-freebsd-amd64-2.4.0.tar.gz ab2c3cc1924638e7cfb0615adf2cb38f58e4803abf4462dd778988bb42a3df02

    git-lfs-linux-386-2.4.0.tar.gz cc2e44a0092e745ce4d3eb856c892a1e606dcf27698a5345a127bc5970085985

    git-lfs-linux-amd64-2.4.0.tar.gz 56728ec9219c1a9339e1e6166f551459d74d300a29b51031851759cee4d7d710 addc96bc4fac57090ef7ecb036778d38e0eb22c71d8926c02820f246b36ac4d6 e3dec7cd1316ef3dc5f0e99161aa2fe77aea82e1dd57a74e3ecbb1e7e459b10e

    git-lfs-windows-2.4.0.exe 345034fc91459579370737201e991c7a2e8acabbb24d15577ecf588d071b1949

    git-lfs-darwin-386-2.4.0.tar.gz e6c35c4395efd9db45ab72c49ff19f807a722e964b15632ff378553d2fdf2708

    git-lfs-darwin-amd64-2.4.0.tar.gz ab5a1391316aa9b4fd53fc6e1a2650580b543105429548bb991d6688511f2273

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-2.4.0.tar.gz(2.59 MB)
    git-lfs-darwin-amd64-2.4.0.tar.gz(2.80 MB)
    git-lfs-freebsd-386-2.4.0.tar.gz(2.46 MB)
    git-lfs-freebsd-amd64-2.4.0.tar.gz(2.66 MB)
    git-lfs-linux-386-2.4.0.tar.gz(2.46 MB)
    git-lfs-linux-amd64-2.4.0.tar.gz(2.66 MB)
    git-lfs-windows-2.4.0.exe(3.87 MB) MB) MB)
  • v2.3.4(Oct 18, 2017)


    • 'git lfs install' updates filters with 'skip-smudge' option #2673 (@technoweenie)


    • FastWalkGitRepo: limit number of concurrent goroutines #2672 (@technoweenie)
    • handle scenario where multiple configuration values exist in ~/.gitconfig #2659 (@shiftkey)


    Up to date packages are available on PackageCloud and Homebrew.

    RPM RHEL 6/CentOS 6 RPM RHEL 7/CentOS 7 Debian 7 Debian 8 Debian 9

    SHA-256 hashes:

    git-lfs-linux-386-2.3.4.tar.gz 4573675966c8cab19156530966ded4e5dd9fc0195b8e958e88475324976583f4

    git-lfs-linux-amd64-2.3.4.tar.gz 6755e109a85ffd9a03aacc629ea4ab1cbb8e7d83e41bd1880bf44b41927f4cfe

    git-lfs-darwin-386-2.3.4.tar.gz 57ca45c7c1734bfb51732cb058c28f6028b959c6e1675f8d4020aca019f9ca7b

    git-lfs-darwin-amd64-2.3.4.tar.gz b16d4b7469b1fa34e0e27bedb1b77cc425b8d7903264854e5f18b0bc73576edb

    git-lfs-freebsd-386-2.3.4.tar.gz 42a4c7269c85d5f1fa4cf6f6a4aca076385cc5915af3d30156e07874c0bd5400

    git-lfs-freebsd-amd64-2.3.4.tar.gz 4684150deedf5509ffb5f67a54378cc582acaa25fbf3b378947c48023fd82ed2 18c47fd2806659e81a40fbd6f6b0598ea1802635ce04fb2317d75973450a3fe5 b0738656064c79f878c17c62d2c4f6f3015fad7dc69d4a3c841ed1f7c93ec83d

    git-lfs-windows-2.3.4.exe f11ee43eae6ae33c258418e6e4ee221eb87d2e98955c498f572efa7b607f9f9b

    Source code(tar.gz)
    Source code(zip)
    git-lfs-darwin-386-2.3.4.tar.gz(2.67 MB)
    git-lfs-darwin-amd64-2.3.4.tar.gz(2.88 MB)
    git-lfs-freebsd-386-2.3.4.tar.gz(2.53 MB)
    git-lfs-freebsd-amd64-2.3.4.tar.gz(2.73 MB)
    git-lfs-linux-386-2.3.4.tar.gz(2.53 MB)
    git-lfs-linux-amd64-2.3.4.tar.gz(2.73 MB)
    git-lfs-windows-2.3.4.exe(3.64 MB) MB) MB)
Go bindings to systemd socket activation, journal, D-Bus, and unit files

go-systemd Go bindings to systemd. The project has several packages: activation - for writing and using socket activation from Go daemon - for notifyi

CoreOS 2.1k Dec 30, 2022
A quick and easy password protected web server for your files. httpfolder makes downloading/uploading files from your current working directory easy, even for fairly large files.

httpfolder A quick and easy password protected web server for your files. httpfolder makes downloading/uploading files from your current working direc

null 14 Sep 12, 2022
lls is lightweight ls. Using lls, you can get a list of files in a directory that contains a large number of files.

lls lls is lightweight ls. Using lls, you can get a list of files in a directory that contains a large number of files. How? You allocate a buffer for

Tatsuya Kaneko 59 Dec 29, 2022
Semantic Versioning (semver) library written in golang

semver for golang semver is a Semantic Versioning library written in golang. It fully covers spec version 2.0.0. Versioning Old v1-v3 versions exist i

Benedikt Lang 930 Dec 26, 2022
Automatically create global & local Rate Limit in Istio, support EnvoyFilter versioning!

istio-ratelimit-operator Istio ratelimit operator provide an easy way to configure Global or Local Ratelimit in Istio mesh. Istio ratelimit operator a

Zufar Dhiyaulhaq 26 Oct 24, 2022
Dud is a lightweight tool for versioning data alongside source code and building data pipelines.

Dud Website | Install | Getting Started | Source Code Dud is a lightweight tool for versioning data alongside source code and building data pipelines.

Kevin Hanselman 121 Jan 1, 2023
A CLI which automates semver versioning.

Semverbot A CLI which automates semver versioning based on git information. Why Semverbot? There are several reasons why you should consider using sbo

null 107 Dec 12, 2022
A boilerplate for Go fiber versioning

Fiber Versioning Boilerplate Prerequisite Make sure you have the following installed outside the current project directory and available in your GOPAT

Visarut Phusua 20 Nov 18, 2022
Learning go with tests! Also setting up automated versioning via SemVer.

learn-go-with-tests The purpose of this repo is to complete the learn-go-with-test course located here. I am also interested in learning how to automa

Derek Willingham 0 Nov 23, 2021
modver - a Go package and command that helps you obey semantic versioning rules in your Go module.

Modver This is modver, a Go package and command that helps you obey semantic versioning rules in your Go module. It can read and compare two different

Bob Glickstein 8 Dec 12, 2022
Split multiple Kubernetes files into smaller files with ease. Split multi-YAML files into individual files.

Split multiple Kubernetes files into smaller files with ease. Split multi-YAML files into individual files.

Patrick D'appollonio 204 Dec 29, 2022
Split multiple Kubernetes files into smaller files with ease. Split multi-YAML files into individual files.

kubectl-slice: split Kubernetes YAMLs into files kubectl-slice is a neat tool that allows you to split a single multi-YAML Kubernetes manifest into mu

Patrick D'appollonio 205 Jan 3, 2023
Source code editor written in Go using go-gtk bindings. It aims to handle navigation effectively among large number of files.

tabby Source code editor written in Go using go-gtk bindings. It aims to handle navigation effectively among large number of files. screenshot: depend

Mikhail Trushnikov 50 Nov 16, 2022
Compute message digest for large files in Go

checksum test coverage Compute message digest, like MD5 and SHA256, in golang for potentially large files. Usage package main import ( "fmt" "githu

Jerry Zhao 76 Dec 28, 2022
Got: Simple golang package and CLI tool to download large files faster 🏃 than cURL and Wget!

Got. Simple and fast concurrent downloader. Installation ❘ CLI Usage ❘ Module Usage ❘ License Comparison Comparison in cloud server: [[email protected]

Mohamed El Bahja 620 Dec 29, 2022
Download an upload large files to Google Drive (API v3)

gdriver gdriver is a command-line tool, written in Go, used for uploading and downloading large personal files from Google Drive (API v3). The tool pr

Marcin Tojek 67 Nov 30, 2022
a sharded store to hold large IPLD graphs efficiently, packaged as location-transparent attachable CAR files, with mechanical sympathy

DAG store This README will be populated soon. In the meantime, please refer to the design document.

Filecoin 33 Oct 31, 2022
Simple program that uploads large files to Amazon S3 over slow connections.

shrimp is a small program that can reliably upload large files to Amazon S3. My personal use case is to upload large files to S3 over a slow residenti

Stefan Sundin 6 Nov 30, 2022
Command-line tool to organize large directories of media files recursively by date, detecting duplicates.

go-media-organizer Command-line tool written in Go to organise all media files in a directory recursively by date, detecting duplicates.

Allan Avelar 8 Jan 6, 2022
A version control system to manage large files.

ArtiVC ArtiVC (Artifacts Version Control) is a handy command-line tool for data versioning on cloud storage. With only one command, it helps you neatl

InfuseAI 224 Jan 4, 2023