Git LFS v2.2.0 includes bug fixes, minor features, and a brand new migrate
command. The migrate
command rewrites commits, converting large files from
Git blobs to LFS objects. The most common use case will fix a git push rejected
for having large blobs:
$ git push origin master
# ...
remote: error: file a.psd is 1.2 gb; this exceeds github's file size limit of 100.00 mb
to github.com:ttaylorr/demo.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@github.com:ttaylorr/demo.git'
$ git lfs migrate info
*.psd 1.2 GB 27/27 files(s) 100%
$ git lfs migrate import --include="*.psd"
migrate: Sorting commits: ..., done
migrate: Rewriting commits: 100% (810/810), done
master f18bb746d44e8ea5065fc779bb1acdf3cdae7ed8 -> 35b0fe0a7bf3ae6952ec9584895a7fb6ebcd498b
migrate: Updating refs: ..., done
$ git push origin
Git LFS: (1 of 1 files) 1.2 GB / 1.2 GB
# ...
To github.com:ttaylorr/demo.git
* [new branch] master -> master
The migrate
command has detailed options described in the git-lfs-migrate(1)
man page. Keep in mind that this is the first pass at such a command, so we
expect there to be bugs and performance issues (especially on long git histories).
Future updates to the command will be focused on improvements to allow full
LFS transitions on large repositories.
Features
- commands: add git-lfs-migrate(1) 'import' subcommand #2353 (@ttaylorr)
- commands: add git-lfs-migrate(1) 'info' subcommand #2313 (@ttaylorr)
- Implement status --json #2311 (@asottile)
- commands/uploader: allow incomplete pushes #2199 (@ttaylorr)
Bugs
- Retry on timeout or temporary errors #2312 (@jakub-m)
- commands/uploader: don't verify locks if verification is disabled #2278 (@ttaylorr)
- Fix tools.TranslateCygwinPath() on MSYS #2277 (@raleksandar)
- commands/clone: add new flags since Git 2.9 #2251, #2252 (@ttaylorr)
- Make pull return non-zero error code when some downloads failed #2237 (@seth2810)
- tq/basic_download: guard against nil HTTP response #2227 (@ttaylorr)
- Bugfix: cannot push to scp style URL #2198 (@jiangxin)
- support lfs..* values where url does not include .git #2192 (@technoweenie)
- commands: fix logged error not interpolating format qualifiers #2228 (@ttaylorr)
- commands/help: print helptext to stdout for consistency with Git #2210 (@ttaylorr)
Misc
- Minor cleanups in help index #2248 (@dpursehouse)
- Add git-lfs-lock and git-lfs-unlock to help index #2232 (@dpursehouse)
- packagecloud: add Debian 9 entry to formatted list #2211 (@ttaylorr)
- Update Xenial is to use stretch packages #2212 (@andyneff)
Packages
Up to date packages are available on PackageCloud.
RPM RHEL 6/CentOS 6
RPM RHEL 7/CentOS 7
Debian 7
Debian 8
Debian 9
SHA-256 hashes
git-lfs-windows-2.2.0.exe
3916d7aa5b82e6bccdabbb9876a8b41d24065a153733583b94184d0d97750965
git-lfs-windows-386-2.2.0.zip
2f486f7552ce11662646fdb799a0b52770a669d690984e15fc7c17ceacb722f0
git-lfs-windows-amd64-2.2.0.zip
e548660fa7546b133b63c08910a1b8c223df042a1b616b331e226f0542a7b4aa
git-lfs-darwin-386-2.2.0.tar.gz
f4921868dbfbc2b765d364ca367d73b4ec6ab625997d6fb0e69998a65936ebf5
git-lfs-darwin-amd64-2.2.0.tar.gz
8a5439cba4e94e75fb55f4bd43abfe98366a7831c283811692fd7d6789060d43
git-lfs-freebsd-386-2.2.0.tar.gz
11882eb86672ed59854fb9f94a1bef334d39d9dec4143a2c299492ffa747f6c7
git-lfs-freebsd-amd64-2.2.0.tar.gz
1e9948d25478cb96bb70f74479a86fe117a11514a3f5786ace0c0fcc4cc03985
git-lfs-linux-386-2.2.0.tar.gz
aa3d9dd7097a53fcf51e1458b2b56505f7cddf1405e0cdf6661ee07c7a887002
git-lfs-linux-amd64-2.2.0.tar.gz
dfd95385c4e5828a033220cf05f0ab37cb9861314204488d04cdfb7931025234