The release of the new version of Git 2.22 was presented Which is one of the most popular version control systems, reliable and high-performance and also provides development tools.
To ensure history integrity and resistance to change in hindsight, implicit hashing of all previous history is used on every commit and digital signatures of individual tag and commit developers can also be verified.
Compared to the previous version, 745 changes were made to the new version, prepared with the participation of 74 developers, of which 18 participated in the development for the first time.
Git 2.22 Key New Features
To display the currently used local branch, now you can use the command Git branch-show-current«.
In addition, since version 1.18 it is available the new transfer mode for the commit set «git rebase --rebase-merges« which has replaced the previous option «–Preserve-merges«, Which is now marked as obsolete.
In order to preserve the branch structure on a portable branch, you could use the option «–Preserve-merges«, Which, when launched in interactive mode (git rebase -i --preserve-merges), allowed to edit the commit history, but did not guarantee the complete preservation of the repository structure.
The successor mode «–Rebase-merges»Allows to preserve the structure of the changes in the portable branch, while providing a complete set of interactive operations, including commit deletion, reorganization, and renaming.
For example, "–Rebase-merges»Allows commits from a separate branch to a newer master branch, while keeping the branch structure on the portable branch, and makes some changes to the notes to commit them on the fly.
The operation "git pass»Is used to replace a series of commits with a new base commit, for example, to change a separate branch in which some new feature is being developed to the current state of the master branch, including fixes added after the branch.
Sublime backend support
The report of «git bisect»Has been updated and is now more readableWhile «git mergetool»Now also supports Sublime Merge («dive") as a backend. Git calls the new hook «post-index-change»When the stored index file changes, which helps virtualized working trees.
Further, "git difftool "now also runs outside of a repository and cancels"git checkout -m»When it detects a difference between HEAD and the index.
Because packing the index sometimes takes a long time in the cloning process, the developers have given you a progress bar along the way.
At the same time, «git clone»Communicates through version 2 of the protocol thanks to the new server option«Switch«. Several features improve code completion, and developers have also worked on the trace2 trace tool.
The new Trace2 tracking mechanism offers a more flexible and structured output format. Trace2 allows you to collect telemetry on operations and performance data for more detailed analysis and debugging (user assigns controller, no data sent abroad).
Performance and development
Git's built-in differential mechanism has been rewritten and now supports, as well as “git commit-tree », the API of “pack-redundant" and "git multi-pack-index verify»Now work faster in repositories that contain many package files. For developers, the testing framework has been updated.
Recently, "go stash»Is implemented in C, for«git pass«. Here the C implementation has been updated to prevent git from overwriting the same file over and over again. «git diff»Now also runs faster in special scenarios where it collects information about blobs. Last but not least, "git clone" speeds up the connection process.
Also added the ability to filter when extended "git log" tags attached to commits are displayed.