Fundamentals 5 min read

Highlights of Git 2.35 Release: New Stash Options, Log Formatting, SSH Key Enhancements, Merge Conflict Improvements, and More

Git 2.35 introduces a suite of enhancements—including a new --staged mode for git stash, richer --format options for git log, advanced SSH key handling, performance boosts for --histogram, a novel zdiff3 merge conflict style, and expanded sparse‑index and reftable support—aimed at streamlining version‑control workflows for developers.

Laravel Tech Community
Laravel Tech Community
Laravel Tech Community
Highlights of Git 2.35 Release: New Stash Options, Log Formatting, SSH Key Enhancements, Merge Conflict Improvements, and More

Git 2.35 has been released, incorporating contributions from over 93 developers, with 35 of them being first‑time contributors.

Key new features include:

The git stash command now supports a --staged mode, allowing users to hide changes that are already staged for later reuse.

git log gains a richer set of --format options, enabling highly customizable log output useful for scripting and terminal decoration.

SSH key handling is enhanced: Git can now use OpenSSH’s valid‑before and valid‑after directives, and the user.signingKey configuration accepts new key types, including non‑"ssh-" prefixed keys such as ECDSA.

The --histogram option sees performance improvements.

The merge.conflictStyle setting adds a new mode called zdiff3 . This mode removes identical lines that appear on both sides of a conflict, producing a cleaner merge result. Example conflict before and after applying zdiff3 is shown below.

Example of a conflict using the traditional diff3 style:

1,
foo,
bar,
<<<<<<< HEAD
=======
quux,
woot,
>>>>>> side
baz,
3,

When zdiff3 is used, the common lines foo and bar are removed from the conflict region, leaving a more concise result.

Git 2.35 introduces the git jump merge command, which lets users narrow the scope of a merge conflict by specifying a pathspec. Example: $ git jump merge -- foo

The internal size_t type is standardized for representing object lengths, enabling filters to handle files larger than 4 GB.

The --empty=<stop|drop|keep> option allows git am to define behavior when encountering empty commits.

Sparse index support is expanded to additional commands such as git reset , git diff , git blame , git fetch , git pull , and the new git ls-files mode.

Reftable is introduced as a new backend to improve read/write performance for repositories with a large number of references, though it is not yet fully integrated with refs.

gitversion controlSSHMerge ConflictstashGit 2.35
Laravel Tech Community
Written by

Laravel Tech Community

Specializing in Laravel development, we continuously publish fresh content and grow alongside the elegant, stable Laravel framework.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.