/compat/git/git-feature-versions
Git features by version: switch, sparse-checkout, reftable
verified onenvironmentlocal · windows 10.0.26200 arm64 · GNU bash 5.3.15 (Git Bash) · git version 2.55.0.windows.5updated 2026-10-20
- tool
- Git
- versions
- Git 2.23 – 2.56
- os
- linux, macos, windows
Many "unknown command" or "unknown option" errors from Git come from an old Git version. This table lists the release that introduced each feature, taken from the official release notes; run git --version to compare.
Feature table
| Feature | Since | Notes |
|---|---|---|
| git switch, git restore | 2.23 | split branch and file operations out of git checkout |
| git sparse-checkout | 2.25 | dedicated command for sparse checkouts |
| SHA-256 repositories | 2.29 | experimental at introduction: git init --object-format=sha256 |
| git maintenance | 2.29 | scheduled repository housekeeping |
| git push --force-if-includes | 2.30 | pairs with --force-with-lease |
| merge.conflictStyle zdiff3 | 2.35 | "zealous diff3" conflict markers |
| scalar | 2.38 | large-repository helper merged into core Git |
| git replay | 2.44 | replay commits without touching the working tree |
| reftable reference backend | 2.45 | git init --ref-format=reftable |
| remote.<name>.followRemoteHEAD | 2.48 | git fetch keeps origin/HEAD in sync |
| git repo, git last-modified | 2.52 | repository info and per-path last change |
| git history (experimental) | 2.54 | history rewriting command |
| git add --resolved, git branch --delete-merged | 2.56 | see the 2.56 release notes |
Check before you use a feature
git --version
git switch -h >/dev/null 2>&1 && echo "git switch: available"
git help -a | grep -qw history && echo "git history: available" || echo "git history: not in this version"Output
git version 2.55.0.windows.5 git history: available
Sources
Related pages
changes · gitGit 2.55 to 2.56: what changedGit 2.56 makes -h and --help exit with 0 instead of 129, adds git add --resolved, git branch --delete-merged and git refs subcommands, and flags push typos.flags · gitgit push --force-with-lease: a safer force push--force-with-lease overwrites the remote branch only if it still points where your remote-tracking ref says, so commits pushed since your fetch are never lost.cheat sheets · gitGit cheat sheet: everyday commandsGit cheat sheet: setup, stage and commit, branches with switch, history, undo with restore, reset and revert, stash, remotes, tags and the reflog on one page.