Git 2.30 (GNU)

Git (GNU) — распределённая система управления версиями. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux.

Система Git спроектирована как набор программ, специально разработанных с учётом их использования в сценариях. Это позволяет удобно создавать специализированные системы контроля версий на базе Git (GNU) или пользовательские интерфейсы. 

По сравнению с прошлым выпуском в новую версию принято 495 изменений, подготовленных при участии 83 разработчиков, из которых 29 впервые приняли участие в разработке.

Основные изменения в новой версии

  • Обновлены шаблоны userdiff для PHP, Rust и CSS. Добавлена поддержка определения функций в bash и POSIX shell.
  • В скрипт автодополнения опций командной строки добавлена возможность раскрытия команд, являющихся псевдонимами псевдонимов, а также реализована поддержка параметров "git stash show", аналогичных параметрам "git diff". Обновлены сценарии автодополнения для Zsh.
  • В "git worktree list" реализовано отображение признака блокировки рабочих деревьев.
  • Продолжено развитие команды "git maintenance", расширенного варианта "git gc".
  • В "git push" добавлена опция "--force-if-includes", нацеленная на решение проблемы с потерей коммитов при неправильном использовании команды "git push --force-with-lease[=<ref>]". При указании "--force-if-includes" вместе c "--force-with-lease" выполняется дополнительная проверка актуальности заменяемых коммитов.
  • Для "git clone" добавлена настройка clone.defaultremotename, позволяющая определить имя, которое будет использовано для обращения к хосту с которого был клонирован репозиторий.
  • Для "git checkout" добавлена настройка checkout.guess, позволяющая настроить применение опции "--guess" по умолчанию.
  • Для команды "git diff A...B" предложен более информативный аналог "git diff --merge-base A B".
  • В команды семейства "git diff" добавлена опция "-I<regex>" для игнорирования частей, изменения в которых соответствуют заданному шаблону.
  • В "git archive" при создании tar.gz разрешено указание уровней сжатия выше "-9".
  • Предоставлена возможность настройки размера имён файлов, создаваемых командой "git format-patch" (раньше действовало ограничение в 64 символа).
  • В команду "git rev-parse" добавлена опция "--end-of-options", помогающая в скриптах явно отделить параметр с ревизией, например "git rev-parse --verify -q --end-of-options $rev".
  • В "git update-ref --stdin" добавлена возможность обработки нескольких транзакций в одном сеансе.
  • В различные подкоманды "git config" добавлена опция "--literal-value", позволяющая передать значение value_regex не в форме регулярного выражения, а в виде строки для проверки точного совпадения.
  • В настройках параметр help.autocorrect теперь может принимать значение 'never' для полного отключения логики определения опечаток в названиях команд (по умолчанию, если указана несуществующая команда, git анализирует типовые опечатки и запускает откорректированную команду, если определён только один вариант замены).
  • Продолжено переписывание команды "git bisect" на языке Си.

Ряд сервисов предоставляют хостинг для git-репозиториев, среди наиболее известных — GitHub, Codebase, SourceForge, SourceHut, Gitorious, Bitbucket, GitLab.