Недавно было объявлено выпуск новой версии Git 2.42, версия, в которой были реализованы различные улучшения, такие как новые растровые изображения, новые механизмы, исправления ошибок и многое другое.
По сравнению с предыдущей версией, в новой версии, подготовленной с использованием участие 78 разработчиковбыло принято 453 изменения, из которых 17 находились в разработке впервые.
Основные новые функции Git 2.42
В этой новой версии Git 2.42 мы видим, что предлагается новый алгоритм для опущенныхг растровые изображения, который отражает данные о наборах объектов, доступных для каждого коммита. Новый алгоритм обеспечивает значительный прирост производительности когда растровое изображение не полностью покрывает одну из сравниваемых ветвей. В некоторых ситуациях применение нового алгоритма может привести к ускорению от 2 до 15 раз.
Еще одной новинкой Git 2.42 являются улучшения, реализованные в команде «git для каждой ссылки«, из которых отмечается, что теперь вместо проверки исключенных ссылок одну за другой новый метод определяет начало и конец каждого диапазона исключены и игнорируются при анализе упакованного файла ссылок. Шаблон исключения указывается с помощью новой опции «–Exclude«. Кроме того, опция «-включают«, что позволяет вернуть отдельные кусочки из исключенного диапазона.
Кроме того, он команда «для каждой ссылки» получили улучшенияНу а теперь с опцией «-Формат» Можно показать информацию, связанную с подписями GPG, например, вы можете показать отдельно ключ, отпечаток ключа и имя разработчика, сгенерировавшего цифровую подпись.
Также отмечается, что а новый механизм сохранения недоступных объектов (те, к которым нельзя получить доступ из любой ветки или тега), потому что в этой новой версии добавлена опция «gc.recentObjectsHook«что позволяет настроить вызов внешней программы до начала сбора мусора. Программа, указанная в параметре gc.recentObjectsHook возвращает список идентификаторов объектов, которые сборщик мусора защитит от удаления, независимо от того, как долго они находятся в репозитории.
Кроме того, подчеркивается широкое использование механизма «разреженный индекс», охватывающий только часть репозитория. Частичные индексы могут повысить производительность и сэкономить место в репозиториях, выполняющих операции частичного клонирования (редкая касса) или работать с частичной копией репозитория. В новой версии команда перемещена дерево различий использовать частичные индексы.
В команде «git рев-лист«, при использовании опции «—stdin«, для облегчения вызова из скриптов, расширенные модификаторы, такие как «—branches», «—tags«И»—пульты» разрешено указывать через входной поток данных не только модификаторы, ссылающиеся на коммиты по идентификатору объекта.
Реализовано отложенное удаление сообщений $GIT_DIR/TAG_EDITMSG, что делается только после успешной записи метки, что решает проблему удаления заметки до появления сообщения об ошибке.
В Git 2.42 также появилось несколько новых опций команды «git-пакет-refs» который отвечает за обновление файла «упакованные рефы» с любыми новыми свободными ссылками, которые не сохраняются. В определенных сценариях (например, ссылка, которая часто обновляется или удаляется) может быть полезно исключить попадание этих ссылок в файл «упакованные рефы» прежде всего «git-пакет-refs» теперь понимает, как изменить набор ссылок, которые он упаковывает, используя свои флаги новые «-include» и «-exclude».
Из других изменений которые выделяются из этой новой версии:
- Добавлена опция «-сирота»К« командедобавить рабочее дерево git» создать рабочее дерево на основе осиротевшей ветки.
- Режим «-Z»Добавлен в команду«git кошачий файл«, что, в отличие от режима «-z», он применяет разделение на основе символов с нулевой кодировкой (вместо новых строк) не только для ввода, но и для вывода.
- Добавлена опция ‘—разделитель‘командовать’добавить заметки git» чтобы выбрать разделитель абзацев.
- Команда «git diff —no-index» реализует возможность чтения из именованных каналов («git diff <(process) <(substitute)»).
Наконец, если вам интересно узнать об этом больше, вы можете ознакомиться с подробностями По следующей ссылке.