Нова версія Git 2.28, що дозволяє не використовувати ім'я master для основних гілок

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

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

  • Додано налаштування init.defaultBranch, яке дозволяє вибрати довільне ім'я основної гілки, яке буде застосовуватися за умовчанням. Налаштування додано для проектів, розробникам яких не дають спокою спогади про рабство, а слово «master» сприймається як образливий натяк або навіює душевні муки та почуття невикупленої провини. GitHub, GitLab и Бітбукет прийняли рішення за умовчанням замість слова "master" для основних гілок використовувати слово "main". У Git, як і раніше, при виконанні команди git init за умовчанням продовжує створюватися гілка master, але це ім'я тепер можна змінити. Наприклад, для зміни імені початкової гілки на "main" можна використовувати команду:

    git config -global init.defaultBranch main

  • Додані оптимізації продуктивності, засновані на появі у файловому форматі commit-graph, який застосовується для оптимізації доступу до інформації про коміти, підтримки фільтрів Блума, імовірнісної структури, що допускає помилкове визначення відсутнього елемента, але виключає пропуск існуючого елемента. Вказана структура дозволяє помітно прискорити пошук в історії змін при використанні команд git log або git blame.
  • У команді "git status" забезпечено виведення інформації про прогрес виконання операції часткового клонування (sparse-checkout).
  • Для команд сімейства "diff" запропоновано нове налаштування "diff.relative".
  • При перевірці через git fsck тепер оцінюється сортування дерева об'єктів і виявляються невідсортовані елементи.
  • Спрощено інтерфейс для редагування конфіденційної інформації у виведенні трасування.
  • У сценарії автодоповнення додана підтримка доповнення опцій команди «git switch».
  • До «git diff» додано підтримку передачі аргументів у різних нотаціях («git diff A..BC», «git diff A..BC…D» тощо).
  • До команди «git fast-export — anonymize» додано можливість завдання власного зіставлення елементів для тонкого налаштування виводу, щоб зробити його зручнішим для налагодження.
  • У «git gui» можна відкривати робочі дерева з початкового діалогу.
  • У протоколі «fetch/clone» реалізовано можливість інформування клієнта сервером про необхідність завантаження заздалегідь підготовлених pack-файлів на додаток до передається упакованим даним об'єкта.
  • Продовжено роботу з переходу на алгоритм хешування SHA-256 замість SHA-1.

Джерело: opennet.ru

Додати коментар або відгук