New version of Git 2.28 allows not using the name 'master' for main branches

Available Release of the distributed source code management system Git 2.28.0Git is one of the most popular, reliable, and high-performance version control systems, providing flexible means of nonlinear development based on branching and merging. Implicit hashing of the entire previous history in every commit ensures the integrity of history and resilience to changes made 'in retrospect.' It is also possible to validate with digital signatures from developers for individual tags and commits.

Compared to the previous release, the new version includes 317 changes made by 58 developers, 13 of whom are participating for the first time. The main innovations:

  • a setting, init.defaultBranch, has been added, allowing you to choose an arbitrary name for the main branch to be used by default. This setting was introduced for projects whose developers are troubled by the memories of oppression, and the word 'master' is perceived as an offensive hint or evokes emotional agony and a sense of unredeemed guilt. GitHub, GitLab and Bitbucket decided to use the word 'main' instead of 'master' for main branches by default. In Git, as before, when executing the 'git init' command, the 'master' branch continues to be created by default, but this name can now be changed. For example, to rename the initial branch to 'main', you can use the command:

    git config --global init.defaultBranch main

  • Performance optimizations have been added based on the introduction of the commit-graph file format, which is used to optimize access to commit information, supporting Bloom filtersa probabilistic structure that allows for false identification of a missing element while excluding the omission of an existing one. This structure significantly speeds up the search in the history of changes when using the 'git log --' or 'git blame' commands.
  • The 'git status' command now provides information on the progress of partial clone (sparse-checkout) operations.
  • A new setting, 'diff.relative', has been proposed for commands in the 'diff' family.
  • When checking with 'git fsck', the sorting of the object tree is now assessed, and unsorted elements are identified.
  • The interface for editing sensitive information in the trace output has been simplified.
  • Support for auto-completing command options for 'git switch' has been added to the input auto-completion script.
  • Support for passing arguments in various notations ('git diff A..B C', 'git diff A..B C...D', etc.) has been added to 'git diff'.
  • The 'git fast-export --anonymize' command has been enhanced to allow custom element mapping for fine-tuning the output, making it more convenient for debugging.
  • In 'git gui', it is now allowed to open working trees from the initial dialog.
  • The "fetch/clone" protocol now includes the capability for the server to inform the client about the need to download pre-prepared pack files in addition to the packaged object data being transferred.
  • Work continues on transitioning to the SHA-256 hashing algorithm instead of SHA-1.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster