Новая версия Git 2.28, позволяющая не использовать имя "master" для основных веток

Доступен выпуск распределенной системы управления исходными текстами Git 2.28.0. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям «задним числом» используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.

По сравнению с прошлым выпуском в новую версию принято 317 изменений, подготовленных при участии 58 разработчика, из которых 13 впервые приняли участие в разработке. Основные новшества:

  • Добавлена настройка init.defaultBranch, позволяющая выбрать произвольное имя основной ветки, которое будет применяться по умолчанию. Настройка добавлена для проектов, разработчикам которых не дают покоя воспоминания о рабстве, а слово «master» воспринимается как оскорбительный намёк или навивает душевные муки и чувство неискуплённой вины. GitHub, GitLab и Bitbucket приняли решение по умолчанию вместо слова «master» для основных веток использовать слово «main». В Git, как и раньше, при выполнении команды «git init» по умолчанию продолжает создаваться ветка «master», но это имя теперь можно изменить. Например, для изменения имени начальной ветки на «main» можно использовать команду:
         git config --global init.defaultBranch main  
  • Добавлены оптимизации производительности, основанные на появлении в файловом формате commit-graph, применяемом для оптимизации доступа к информации о коммитах, поддержки фильтров Блума, вероятностной структуры, допускающей ложное определение отсутствующего элемента, но исключающей пропуск существующего элемента. Указанная структура позволяет заметно ускорить поиск в истории изменений при использовании команд «git log — ‹path›» или «git blame».
  • В команде «git status» обеспечен вывод информации о прогрессе выполнения операции частичного клонирования (sparse-checkout).
  • Для команд семейства «diff» предложена новая настройка «diff.relative».
  • При проверке через «git fsck» теперь оценивается сортировка дерева объектов и выявляются неотсортированные элементы.
  • Упрощён интерфейс для редактирования конфиденциальной информации в выводе трассировки.
  • В сценарии автодополнения ввода добавлена поддержка дополнения опуций команды «git switch».
  • В «git diff» добавлена поддержка передачи аргументов в разных нотациях («git diff A…B C», «git diff A…B C…D» и т.п.).
  • В команду «git fast-export --anonymize» добавлена возможность задания собственного сопоставления элементов для тонкой настройки вывода, чтобы сделать его более удобным для отладки.
  • В «git gui» разрешено открывать рабочие деревья из начального диалога.
  • В протоколе «fetch/clone» реализована возможность информирования клиента сервером о необходимости загрузки заранее подготовленных pack-файлов в дополнение к передаваемым упакованным данным объекта.
  • Продолжена работа по переходу на алгоритм хеширования SHA-256 вместо SHA-1.



Источник: http://www.opennet.ru/opennews/art.shtml? num=53441

© OpenNet