Lansarea sistemului de control al surselor distribuite Git 2.23

Introdus lansarea unui sistem distribuit de control al sursei git 2.23.0. Git este unul dintre cele mai populare, fiabile și de înaltă performanță sisteme de control al versiunilor, oferind instrumente flexibile de dezvoltare neliniară bazate pe ramificare și îmbinare. Pentru a asigura integritatea istoricului și rezistența la modificări retroactive, se utilizează hashingul implicit al întregului istoric anterior în fiecare commit și este, de asemenea, posibilă certificarea etichetelor și commit-urilor individuale cu semnăturile digitale ale dezvoltatorilor.

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

  • Представлены экспериментальные команды «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» теперь учитывают наличие коммитов в связанных репозиториях (supleanți);
  • Adăugat опции «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 в самом начале списка независимо от локали.

Sursa: opennet.ru

Adauga un comentariu