Table of Contents
Git 2.38 was introduced in Oct for Home windows, Linux/Unix, and macOS by the Microsoft-owned GitHub staff. This model of Git included new functions as perfectly as the “Scalar” Repository Administration Software for taking care of huge repositories.
The open-supply group has now created a couple of new enhancements with the launch of Git 2.39., which are described down below. Visit this page to get the most new Git 2.39 download for Home windows, Linux/Unix, and macOS.

What is new and improved in Git 2.39
UI, Workflows & Characteristics
- “git grep” learned to develop the sparse-index extra lazily and on demand in a sparse checkout
- By default, use of fsmonitor on a repository on networked filesystem is disabled. Insert knobs to make it workable on macOS
- Soon after examining out a “department” that is a symbolic-ref that details at yet another branch, “git symbolic-ref HEAD” reports the fundamental department, not the symbolic-ref the person gave checkout as argument. The command discovered the “–no-recurse” alternative to stop immediately after dereferencing a symbolic-ref only as soon as
- “git branch –edit-description @-1” is now a way to edit department description of the department you had been on in advance of switching to the existing department
- “git merge-tree –stdin” is a new way to request a series of merges and report the merge benefits
- “git shortlog” realized to team by the “format” string
- A new “–contain-whitespace” option is extra to “git patch-id”, and existing bugs in the interior patch-id logic that did not match what “git patch-id” generates have been corrected
- Help gc.cruftpacks by default for those who decide into element.experimental setting
- “git repack” learns to mail cruft objects out of the way into packfiles outside the repository
- ‘scalar reconfigure -a’ is taught to immediately eliminate scalar.repo entires which no more time exist
- Redact headers from cURL’s h2h3 module in GIT_CURL_VERBOSE and many others
- ‘git routine maintenance register’ is taught to publish configuration to an arbitrary route, and ‘git for-each-repo’ is taught to increase tilde figures in paths
- When developing new notes, the template applied to get a stray vacant newline, which has been taken out
- “git receive-pack” utilized to use all the nearby refs as the boundary for examining connectivity of the info “git force” despatched, but now it takes advantage of only the refs that it marketed to the pusher. In a repository with the .hideRefs configuration, this cuts down the assets needed to perform the check
- With ‘–recurse-submodules=on-demand’, all submodules are recursively pushed.
Overall performance, Inside Implementation, Advancement Support
- With a little bit of header twiddling, use the native regexp library on macOS as a substitute of the compat/ a single.
- Get ready for GNU [ef]grep that toss warning of their works by using.
- Resources associated to fuzz testing have been moved down to their possess directory.
- Most credential helpers ignored not known entries in a credential description, but a several died upon seeing them. The latter were being taught to dismiss them, as well
- “scalar unregister” in a repository that is now been unregistered claimed an error.
- Take away mistake detection from a purpose that fetches from promisor remote controls, and make it die when this sort of a fetch fails to deliver all the asked for objects, to give an early failure to several operations.
- Update CodingGuidelines to make clear what capabilities to use and avoid in C99.
- Steer clear of false-favourable from LSan whose assumption might be damaged with bigger optimization degrees.
- Help handle and undefined sanitizer responsibilities at GitHub Actions CI.
- Extra UNUSED annotation to help working with -Wunused possibility with the compiler. (merge 4b992f0a24 jk/unused-anno-extra later to maint).
- Rewrite a deep recursion in the skipping negotiator to use a loop with on-heap prio queue to avoid stack wastage.
- Increase documentation for concept IDs in fsck mistake messages.
- Determine the logical components of a “bundle checklist”, info framework to keep them in-core, format to transfer them, and code to parse them.
- The role the protection mailing list performs in an embargoed launch has been documented.
- Two new services, “timer” and “counter”, are launched to the trace2 API.
- Code simplification by employing strvec_pushf() in its place of developing an argument in a independent strbuf.
- Make sure generated dependency file is stably sorted to help developers debugging their create concerns.
- The glossary entries for “dedicate-graph file” and “reachability bitmap” have been included.
- A variety of tests exercising the transfer.credentialsInUrl configuration are taught to prevent making requests which need resolving localhost to cut down CI-flakiness.
- A redundant diagnostic message is dropped from test_route_is_lacking().
- Simplify the run-command API.
- Update the steps/github-script dependency in CI to stay away from a deprecation warning.
- Development on remaining ready to initialize a rev_details struct with a macro.
- Incorporate trace2 counters to the region to apparent skip worktree bits in a sparse checkout.
- Modernize take a look at script to steer clear of “test -f” and buddies.
- Steer clear of calling ‘cache_tree_update()’ when accomplishing so would be redundant.
- Update the credential-cache documentation to offer a far more sensible instance.
- Makefile reviews updates and reordering to clarify knobs made use of to pick SHA implementations.
- A structure document for sparse-checkout’s future instructions has been extra.
- Instruct chainlint.pl to annotate the primary take a look at definition as a substitute of the token stream.
- “make coccicheck” is time consuming. It has been created to run far more incrementally.
- `parse_object()` has been hardened to test for the existence of a suspected blob item.
- The establish procedure has been adjusted to GNUmake model 4.4, which produced some improvements to how sample rule with a number of targets are managed.
How to down load Git 2.39 for Home windows, Linux/Unix, and macOS
The most up-to-date edition of the Git customer can be downloaded from the official web site. To obtain Git model 2.39 for Windows, simply click here and pick out either the 32-little bit or 64-little bit choice. From this webpage, you can also down load a portable (thumb push version) of Git. To obtain Git variation 2.39 for Linux/Unix, click on listed here. To download Git edition 2.39 for Mac OS, click on here.