See what’s new in Git

Git 2.26 sets protocol v2 as default and updates git sparse-checkout

Maika Möbus
Git 2.26
© Shutterstock / spainter_vfx

The version control system Git has received its latest update. Git 2.26 sets v2 of the network fetch protocol as default and continues working on git sparse-checkout that was introduced in the previous version, which was released two months ago. Let’s see what has changed for this command and what else is new.

Git 2.26 has been released. The open source Git project announced the latest version on the GitHub Blog. Let’s dive right in and take a look at the new and updated features.

SEE ALSO: Gitea 1.11.0: Open source self-hosting Git solution gets a new update

Updates for git sparse-checkout

The sub-command git sparse-checkout was first introduced in Git 2.25 to replace more complicated .gitignore patterns in .git/info/sparse-checkout and make working with partial clones and sparse checkouts easier.

In Git 2.26, the “cone” mode of git sparse-checkout has been refined, and the additional mode git sparse-checkout add is now included.

The git sparse-checkout add mode lets you add new dictionary entries one at a time, as demonstrated in the blog post:

$ git clone --filter=blob:none --sparse [email protected]:git/git.git
Cloning into 'git'...
remote: Enumerating objects: 175470, done.
remote: Total 175470 (delta 0), reused 0 (delta 0), pack-reused 175470
Receiving objects: 100% (175470/175470), 59.07 MiB | 10.48 MiB/s, done.
Resolving deltas: 100% (111328/111328), done.
remote: Enumerating objects: 379, done.
remote: Counting objects: 100% (379/379), done.
remote: Compressing objects: 100% (379/379), done.
remote: Total 431 (delta 0), reused 0 (delta 0), pack-reused 52
Receiving objects: 100% (431/431), 1.73 MiB | 4.06 MiB/s, done.
Updating files: 100% (432/432), done.

$ cd git

$ git sparse-checkout init --cone
$ git sparse-checkout add t
remote: Enumerating objects: 797, done.
# ...
Updating files: 100% (1946/1946), done.

$ git sparse-checkout add Documentation
remote: Enumerating objects: 334, done.
# ...
Updating files: 100% (723/723), done.

$ git sparse-checkout list

Other updates

Version 2 of Git’s network fetch protocol arrived in 2018. With Git 2.26, it is now set as default, which should bring several benefits. For example, it should increase the speed of fetches from large repositories. Although v2 is now the default, clients will fall back to the original protocol if the server does not support the new one.

Git 2.26 also introduces new config options, one of which is --show-scope that works similarly to --show-origin and can be combined with it, but is less verbose.

This is how --show-scope looks when used alone:

$ git config --show-scope --get-regexp 'diff.*'
global  diff.statgraphwidth 35
local   diff.colormoved plain

$ git config --global --unset diff.statgraphwidth

And here --show-scope is used in combination with --show-origin:

$ git config --list --show-scope --show-origin
global  file:/home/user/.gitconfig      diff.interhunkcontext=1
global  file:/home/user/.gitconfig      push.default=current
local   file:.git/config      branch.master.remote=origin
local   file:.git/config      branch.master.merge=refs/heads/master

When comparing changes in two branches, Git users now have the option to specify “bright” for colors that have ANSI escape sequences. This means you can choose bright blue by typing %C(brightblue).

SEE ALSO: GitHub Mobile is now generally available for Android & iOS

For further details on Git 2.26, see the GitHub blog post.

Maika Möbus
Maika Möbus has been an editor for Software & Support Media since January 2019. She studied Sociology at Goethe University Frankfurt and Johannes Gutenberg University Mainz.

Inline Feedbacks
View all comments