Release of the distributed version control system Git 2.23

Introduced Release of the distributed source code management system Git 2.23.0Git is one of the most popular, reliable, and high-performance version control systems, providing flexible tools for non-linear development based on branching and merging. Implicit hashing of all previous history in each commit is used to ensure the integrity of history and resilience to retroactive changes. Digital signatures from developers can also be used to verify specific tags and commits.

Compared to the previous release, the new version includes 505 changes made by 77 developers, 26 of whom participated in the development for the first time. The main highlights include innovations:

  • Experimental commands 'git switch' and 'git restore' have been introduced to separate loosely related functionalities of 'git checkout', such as branch manipulation (switching and creating) and restoring files in the working directory ('git checkout $commit — $filename') or directly in the staging area ('—staging', which has no equivalent in 'git checkout'). Notably, unlike 'git checkout', 'git restore' removes untracked files from the restored directories ('—no-overlay' by default).
  • An option 'git merge —quit' has been added, which, similar to '—abort', stops the branch merge process while leaving the working directory untouched. This option can be useful if some changes made during a manual merge are better represented as a separate commit.
  • The commands 'git clone', 'git fetch', and 'git push' now consider the presence of commits in related repositories (alternates);
  • Additional the options 'git blame —ignore-rev' and '—ignore-revs-file', which allow you to skip commits that contain insignificant changes (e.g., formatting corrections);
  • An option 'git cherry-pick —skip' has been added to skip a conflicting commit (a remembered equivalent of the sequence 'git reset && git cherry-pick —continue');
  • A setting status.aheadBehind has been added, fixing the option 'git status —[no-]ahead-behind' permanently;
  • From this release onwards, 'git log' by default accounts for changes made by mailmap, similar to how it already occurs in git shortlog.
  • The operation of updating the experimental commit graph cache (core.commitGraph) introduced in 2.18 has been significantly accelerated. The git for-each-ref command has also been optimized when using multiple patterns, and the number of auto-gc calls in 'git fetch --multiple' has been reduced.
  • 'git branch --list' now always displays detached HEAD at the very beginning of the list, regardless of locale.

Source: opennet.ru

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