По сравнению с прошлым выпуском в новую версию принято 537 изменений, подготовленных при участии 71 разработчика, из которых 19 впервые приняли участие в разработке. Основные новшества:
- Отменено реализованное в прошлом выпуске включение по умолчанию второй версии коммуникационного протокола Git, который используется при удалённом подключении клиента к Git-серверу. Протокол признан пока не готовым к использованию по умолчанию из-за выявления скользких моментов, требующих отдельного рассмотрения.
- Добавлен набор опций для настройки SSL-соединения при обращении через прокси.
- Расширена информация, выдаваемая при использовании преобразующих фильтров "clean" и "smudge". Например, теперь показывается объект tree-ish, в котором появляется преобразуемый блоб.
- Для избежания путаницы в команде "git describe" теперь всегда применяется расширенный режим вывода ("--long"), если выявлен связанный с коммитом заменённый тег (раньше, подписанный или аннотированный тег, описывающий коммит, выводился даже если он был переименован или перемещён в иерархии "refs/tags/", и команда "git show тег^0" не работала как ожидалось - "refs/tags/тег" не находился или даже выдавался уже другой тег).
- При выполнении "git pull" теперь выдаётся предупреждение, если явно не задана конфигурационная переменная pull.rebase и не применены опции "--[no-]rebase" или "--ff-only". Для подавления предупреждения теми, кто не собирается выполнять операцию rebase, можно установить переменной значение "false".
- Проведена ревизия опций "git pull", общих с "git fetch". Документированы ранее не упомянутые подобные опции и обеспечена передача в "git fetch" пропущенных опций.
- В команду "git rebase" добавлена опция "--no-gpg-sign" для переопределения настройки "commit.gpgSign".
- В "git format-patch" добавлена возможность отображения заголовков "From:" и "Subject:" в неизменном виде, без преобразования символов, отсутствующих в кодировке ASCII.
- В "git log" добавлена опция "--show-pulls", позволяющая просмотреть не только коммиты в которых было выполнено изменения, но и коммит для слияния этих изменений из отдельной ветки.
- Унифицирована обработка интерактивного ввода во всех компонентах и добавлен вызов fflush() после показа приглашения ввода, но перед операцией чтения.
- В "git rebase" разрешено без предварительного выполнения операции "checkout" повторно применить все локальные коммиты, даже если некоторые из них ранее были переданы в upstream.
- Значение конфигурационной переменной 'pack.useSparse' заменено на 'true' для включения по умолчанию оптимизаций, ранее преподносимых как экспериментальные.
- В "git merge" добавлена опция "--autostash".
- Улучшен интерфейс "sparse-checkout".
- В "git update-ref --stdin" добавлено несколько новых действий, позволяющих напрямую контролировать транзакции обновления ссылок, например, для реализации двухэтапного атомарного обновления ссылок в нескольких репозиториях.
- Добавлены шаблоны userdiff для документов Markdown.
- Убрано ограничение на исключение всех путей в шаблонах sparse-checkout, приводящих к пустому рабочему дереву.
- Операция "git restore --staged --worktree" теперь по умолчанию использует содержимое из ветки "HEAD", вместо вывода ошибки.
- Продолжена работа по переходу на алгоритм хеширования SHA-2 вместо SHA-1.
- Переработан код для взаимодействия с GnuPG.
Источник: https://www.opennet.ru/opennews/art.shtml?num=53070
(opennet.ru, основная лента)