Release of distributed source management system Git 2.30

Available release of distributed source control system Git 2.30.0 . Git is one of the most popular, reliable and high-performance version control systems, providing flexible non-linear development tools based on branching and merging. To ensure the integrity of history and resistance to changes “retroactively”, implicit hashing of the entire previous history in each commit is used, it is also possible to certify with digital signatures of the developers of individual tags and commits.

Compared to the previous release, 495 changes were adopted in the new version, prepared with the participation of 83 developers, of which 29 took part in development for the first time. Major innovations :

  • Updated userdiff templates for PHP, Rust and CSS. Added support for defining functions in bash and POSIX shell.
  • Added the ability to expand commands that are aliases to the command line options autocomplete script, and support for “git stash show” parameters similar to “git diff” parameters. Updated auto-completion scripts for Zsh.
  • The “git worktree list” now displays a flag for blocking working trees.
  • The development of the “git maintenance” command, an extended version of “git gc”, is continued.
  • “git push” added the “–force-if-includes” option, aimed at solving the problem of losing commits when using the “git push –force-with-lease [=]” command incorrectly. Specifying “–force-if-includes” together with “–force-with-lease” performs an additional check of the relevance of the commits being replaced.
  • For “git clone” added the clone.defaultremotename setting to determine the name which will be used to refer to the host from which the repository was cloned.
  • For “git checkout” added checkout.guess option to configure the default “–guess” option.
  • For the command “git diff A … B”, a more informative analogue of “git diff –merge-base AB” is suggested.
  • The “-I” option has been added to the commands of the “git diff” family to ignore parts with changes that match the specified pattern.
  • In “git archive”, when creating tar.gz, it is allowed to specify compression levels higher than “-9”.
  • It is possible to customize the size of the file names created with the “git format-patch” command (previously there was a 64 character limit).
/Release. View in full here.