
18 августа 2025 года состоялся релиз распределённой системы управления версиями Git 2.51 с изменениями в рамках подготовки к Git 3.0. В обновление вошли 506 изменений кода и фиксы с патчами от 91 разработчика, 21 из них — новые участники проекта. Релиз Git 2.47 состоялся в октябре 2024 года. Версия Git 2.48 опубликована в январе 2025 года. В середине марта 2025 года вышла версия Git 2.49. Версия Git 2.50 случилась в июне 2025 года.

Как сообщалось разработчиками ранее в анонсе 2.51-rc0, Git 2.51 содержит дополнительные изменения, необходимые для подготовки к Git 3.0. В Git 3.0 хеш-функция по умолчанию изменится с SHA-1 на SHA-256 для повышения безопасности репозитория от потенциальных коллизий хеш-функций. В Git 2.51 также реализованы многопакетные индексы без лишних элементов, новое внутреннее представление хранилища, улучшена документация, а также отмечено, что reftable-бэкенд Git станет новым форматом по умолчанию с Git 3.0. Также ожидается, что в Git 3.0 будет удалена подкоманда git whatchanged.
Основные изменения в Git 2.51:
в команде «git cat‑file», выводящей содержимое заданных объектов, при использовании опций «‑batch» и «‑batch‑check» реализована возможность отображения информации об отсутствующих объектах (например, из‑за повреждения репозитория) и субмодулях. Ранее при указании пути у субмодулю команда «git cat‑file ‑batch‑check» выводила «missing», а теперь покажет идентификатор объекта.
в команде «git log» задействованы оптимизации на основе фильтров Блума для ускорения поиска в истории изменений при указании фильтров с несколькими файловыми путями, например, «git log — path/to/a path/to/b».
стабилизированы команды «git switch» и «git restore», которые с 2019 года рассматривались как экспериментальные. Команды преподносятся как современные эквиваленты «git checkout», разделяющие такие малосвязанные возможности данной команды, как манипуляция ветками (переключение и создание) и восстановление файлов в рабочем каталоге.
объявлена устаревшей и намечена к удалению в ветке Git 3.0 команда «git whatchanged», эквивалентная «git log ‑raw».
в команду «git for‑each‑ref» добавлена опция «‑start‑after», которая может применяться совместно с опцией «‑count» для организации постраничного вывода.
в команды «git merge» и «git pull» добавлена опция «‑compact‑summary» для использования компактного формата сводной информации об изменениях вместо формата diffstat.
в кодовой базе Git разрешено использование ключевого слова «bool», появившегося в стандарте C99. Также документированы некоторые возможности C99, экспериментально используемые в Git (например, в середине 2026 года планируют разрешить применение конструкций «(struct foo){.member = value };»). Компилятор с поддержкой C99 является обязательным для Git c 2021 года, но возможности спецификации C99 внедряются крайне осторожно для сохранения совместимости с компиляторами, лишь частично поддерживающими данный стандарт.
в правила приёма патчей внесены изменения, разрешающие отправку патчей под псевдонимом, а не только под настоящим именем разработчика. Изменение соответствует правилам приёма патчей в ядро Linux.
повышена производительность команд "git push" и "git fetch" в репозиториях с большим числом ссылок. Ускорение обеспечено за счёт обновления ссылок в пакетном режиме, в котором в одной транзакции обрабатывается сразу несколько ссылок, вместо создания отдельной транзакции для обновления каждой ссылки. Оптимизация существенно увеличила скорость работы бэкенда "reftable", которые теперь обгоняет по производительности бэкенд "files" Например, в тестовом репозитории с 10 тысячами ссылок производительность "git fetch" при использовании бэкенда "reftable" увеличилась в 22 раза, а при использовании бэкенда "files" - в 1.25 раза. Для "git push" прирост составил 18 и 1.21 раз, соответственно.
