Git 2.55 Brings FSMonitor to Linux

Git 2.55 has been released, and one of the most anticipated features is finally available on Linux. The built-in FSMonitor daemon now works on the platform. Anyone working with large repositories knows the problem: git status can be slow because Git has to scan the entire working tree. FSMonitor solves this by tracking filesystem changes in the background, allowing Git to query what has changed instead of scanning everything itself.

For repositories such as the Linux kernel, Chromium, or Android, this can make git status up to ten times faster. Until now, the built-in daemon was only available on macOS and Windows.

Enabling the feature is straightforward:

git config core.fsmonitor true
git config core.untrackedcache true

Security: Terminal escape sequences are now blocked

Git now blocks terminal control sequences in sideband output by default. Only ANSI color escape sequences remain allowed. This change prevents malicious remote repositories from injecting unexpected terminal control commands while preserving colored progress output.

Rust integration continues

The Git project is also continuing its gradual Rust integration. Starting with Git 2.55, the Rust compiler is enabled by default when building Git from source, unless Rust support is explicitly disabled. This lays the foundation for broader Rust adoption within the Git codebase. The xdiff library has also been updated to improve interoperability with Rust components.

git checkout -m now protects local changes

Developers who use git checkout -m to switch branches have likely encountered merge conflicts involving local modifications. Previously, Git simply aborted the operation. Git 2.55 now creates an automatic stash in these situations, preventing local changes from being lost during a failed branch switch.

Proxy URLs and HTTPS proxies

Several bugs have also been fixed. Git now reports invalid proxy URLs, such as httt://, instead of failing silently. Version 2.55 also fixes a regression that affected connections through HTTPS proxies.

Other improvements

Parallel hooks: Configuration-based hooks can now run in parallel when they are marked as safe for concurrent execution. This can significantly reduce execution time in CI workflows.

git format-rev: A new experimental command for formatting individual revisions. It is particularly useful for scripting and automation.

git history fixup: The experimental git history command now includes a new fixup subcommand that applies staged changes directly to an earlier commit.

git url-parse: Git's internal URL parsing functionality is now available as a standalone command.

Graph lane limiting: git log --graph can now limit the number of displayed graph lanes, making complex commit histories easier to read.

ort merge backend: Additional optimizations improve merge performance.

Source code and downloads are available at git-scm.com.