
Состоялся релиз системы контроля версий Git 2.54. Как и прежде, Git делает упор на высокую производительность и эффективные механизмы нелинейной разработки, позволяя гибко работать с ветками. Целостность истории и защита от несанкционированных изменений обеспечиваются за счет хэширования всей истории в каждом коммите, а также использования цифровых подписей для тегов и фиксаций кода. Проект остается верен лицензии GPLv2+.
В этот релиз вошло 770 правок от 137 разработчиков, причем 66 из них внесли свой вклад в развитие Git впервые.
Основные нововведения
Важным дополнением стала экспериментальная команда git history, предлагающая более интуитивные и безопасные способы редактирования истории, чем классическая git rebase:
- git history reword — позволяет изменить сообщение конкретного коммита, не затрагивая содержимое файлов и индекс. Идеально подходит для исправления опечаток.
- git history split — дает возможность интерактивно разбить один коммит на два, перенося часть изменений в отдельный объект.
Разработчики планируют расширять функционал в будущих версиях, добавив команды для удаления, объединения (squash) и переупорядочивания коммитов.
Управление обработчиками (хуками)
Теперь хуки можно определять непосредственно в файлах конфигурации, а не только в папке .git/hooks. Это работает на уровне репозитория, пользователя или системы (через /etc/gitconfig). Система поддерживает привязку нескольких обработчиков к одному событию: сначала отработают скрипты из конфигурации, а затем — локальные хуки. Для управления списком используется команда git hook list, а для отключения — параметр hook..enabled = false.
Оптимизация и работа с данными
- Улучшенное обслуживание: В
git maintenanceпо умолчанию включена стратегияgeometric. Она существенно ускоряет работу с крупными монорепозиториями, избегая ресурсоемкой переупаковки всех объектов. - Архитектура бэкендов: База данных объектов (ODB) получила новую архитектуру с подключаемыми бэкендами. Это открывает путь к внедрению новых форматов хранения, что критично для работы с большими бинарными файлами и крупными хостингами.
- Структура репозитория: Команда
git repo structureтеперь выводит данные о самых крупных объектах, позволяя анализировать «вес» репозитория без сторонних утилит. - Git Replay: При воссоздании истории на сервере теперь по умолчанию используется атомарное обновление ссылок. Также добавлена опция
--revertдля отмены изменений серии коммитов.
Другие улучшения
- Команда
git add -pстала удобнее: при навигации (клавиши «J» и «K») блоки кода помечаются как одобренные или пропущенные. Опция--no-auto-advanceпредотвращает автоматический переход к следующему файлу. - Веб-интерфейс
gitwebоптимизирован для использования на смартфонах и планшетах. git send-emailтеперь поддерживает клиентские сертификаты для отправки писем.- Улучшена обработка ошибок при работе через HTTP: ответ 429 (Too Many Requests) теперь корректно распознается как временная проблема, после чего Git автоматически повторяет запрос.
- Подписи с истекшим сроком действия ключа (если они были валидны на момент создания) больше не подсвечиваются «ошибочным» красным цветом, а помечаются как корректные с указанием на устаревание ключа.






