издадена разпределена система за управление изходния текст . Git е една от най-популярните, надеждни и производителни системи за управление на версии, предлагаща гъвкави средства за нелинеен софтуер, изградени на базата на разклонения и сливане на клонове. За осигуряване на целостта на историята и устойчивостта срещу ретроактивни промени се използва имплицитно хеширане на цялата предишна история в всеки комит, също така е възможно удостоверяване с цифрови подписи на разработчиците на отделни тагове и комити.
В новата версия са включени 505 промени, подготвени с участието на 77 разработчици, от които 26 участват за първи път в разработката. Основните :
- Представени са експерименталните команди „git switch“ и „git restore“, които имат за цел да разделят малозависимите функции на „git checkout“, като манипулиране на клонове (превключване и създаване) и възстановяване на файлове в работната директория („git checkout $commit — $filename“) или директно в staging area („—staging“, няма аналог в „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
