Git LFS 2.0.0 released
Today we’re announcing the next major release of Git LFS: v2.0.0. The official release notes have the complete list of all the new features, performance improvements, and more. In the…
Today we’re announcing the next major release of Git LFS: v2.0.0.
The official release notes have the complete list of all the new features, performance improvements, and more. In the meantime, here’s our look at a few of our newest features:
File locking
With Git LFS 2.0.0 you can now lock files that you’re actively working on, preventing others from pushing to the Git LFS server until you unlock the files again.
This will prevent merge conflicts as well as lost work on non-mergeable files at the filesystem level. While it may seem to contradict the distributed and parallel nature of Git, file locking is an important part of many software development workflows—particularly for larger teams working with binary assets.
# This tells LFS to track *.tga files and make them lockable.
# They will appear as read-only on the filesystem.
$ git lfs track "*.tga" --lockable
# To acquire the lock and make foo.tga writeable:
$ git lfs lock foo.tga
# foo.tga is now writeable
$ git add foo.tga
$ git commit ...
$ git push
# Once you're ready to stop work, release the file so others can work on it.
$ git lfs unlock foo.tga
Everything else
Git LFS v2.0.0 also comes with a host of other great features, bug fixes, and other changes.
Transfer queue
Our transfer queue, the mechanism responsible for uploading and downloading files, is faster, more efficient, and more resilient to failure.
To dive in, visit our release notes to learn more.
Internals
Git LFS has tremendously improved internals, particularly in Git and filesystem operations. push
and pull
operations have been optimized to run concurrently with the underlying tree scans necessary to detect LFS objects. Repositories with large trees can begin the push
or pull
operation immediately, while the tree scan takes place, greatly reducing the amount of time it takes to complete these operations.
The mechanism that scans for files tracked by LFS has been enhanced to ignore directories included in your repository’s .gitignore
, improving the efficiency of these operations.
In Git LFS v1.5.0, we introduced the process
filter (along with changes in Git v2.11) to dramatically improve performance across multiple platforms, thanks to contributions from @larsxschneider.
Thank you
Since its release, Git LFS has benefited from the contributions of 81 members of the open source community. There have been 1,008 pull-requests, 851 of which have been merged into an official release. Git LFS would not be possible without the gracious efforts of our wonderful contributors. Special thanks to @sinbad who contributed to our work on file locking.
What’s next?
File locking is an early release, so we’re eager to hear your feedback and thoughts on how the feature should work.
In addition, our roadmap is public: comments, questions (and pull requests) are welcomed. To learn more about Git LFS, visit the Git LFS website.
Psst! We also just announced the GitHub plugin for Unity, which brings the GitHub workflow to Unity, including support for Git LFS and file locking. Sign up for early access now.
Tags:
Written by
Related posts
What the EU’s new software legislation means for developers
The EU Cyber Resilience Act will introduce new cybersecurity requirements for software released in the EU. Learn what it means for your open source projects and what GitHub is doing to ensure the law will be a net win for open source maintainers.
Game Off 2024 theme announcement
GitHub’s annual month-long game jam, where creativity knows no limits! Throughout November, dive into your favorite game engines, libraries, and programming languages to bring your wildest game ideas to life. Whether you’re a seasoned dev or just getting started, it’s all about having fun and making something awesome!
Highlights from Git 2.47
Git 2.47 is here, with features like incremental multi-pack indexes and more. Check out our coverage of some of the highlights here.