Випуск розподіленої системи керування вихідними текстами Git 2.23

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

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

  • Представлені експериментальні команди «git switch» та «git restore», покликані розділити між собою малопов'язані можливості «git checkout», такі як маніпуляція гілками (перемикання та створення) та відновлення файлів у робочій директорії («git checkout $commit — $filename») або відразу в staging area («-staging», не має аналога в «git checkout»). Варто зазначити, що, на відміну від «git checkout», «git restore» видаляє файли, що не відстежуються, з відновлюваних директорій («—no-overlay» за замовчуванням).
  • Додана опція «git merge —quit», яка, аналогічно «abort», зупиняє процес злиття гілок, але залишає при цьому робочу директорію недоторканою. Ця опція може бути корисною у випадку, якщо деякі зміни, внесені в ході ручного злиття, краще оформити у вигляді окремого комміту.
  • Команди git clone, git fetch і git push тепер враховують наявність коммітів у пов'язаних репозиторіях (замінники);
  • Додані опції "git blame -ignore-rev" і "-ignore-revs-file", що дозволяють пропустити комміти, в яких внесені незначні правки (наприклад, виправлення форматування);
  • Додана опція «git cherry-pick-skip» для пропуску конфліктного комміту (запам'ятовуваний аналог послідовності «git reset && git cherry-pick-continue»);
  • Додано налаштування status.aheadBehind, яке фіксує опцію «git status —[no-]ahead-behind» на постійній основі;
  • З цього випуску "git log" за замовчуванням враховує зміни, внесені mailmap, аналогічно тому, як це вже відбувається в git shortlog;
  • Істотно прискорено операцію оновлення представленого в 2.18 експериментального кешу графа коммітів (core.commitGraph). Також прискорено git for-each-ref у разі використання кількох шаблонів та скорочено кількість викликів auto-gc у «git fetch —multiple»;
  • "git branch -list" тепер завжди показує detached HEAD на самому початку списку незалежно від локалі.

Джерело: opennet.ru

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