издаване на разпределена система за управление на изходните текстове . Git е една от най-популярните, надеждни и високопроизводителни системи за управление на версии, предоставяща гъвкави средства за нелинейна разработка, базирани на разклоняване и сливания на клонове. За да се осигури целостта на историята и устойчивостта на промени „заден план“ се използва неявно хеширане на цялата предишна история във всеки комит, също така е възможно удостоверяването с цифрови подписи на разработчиците на отделни тагове и комити.
В сравнение с предишната версия, новата версия приема 537 изменения, подготвени с участието на 71 разработчик, от които 19 за първи път участват в разработката. Основни :
- Отменено е осъщественото в предишното издание включване по подразбиране на комуникационния протокол Git, който се използва при отдалечено свързване на клиента към Git-сървъра. Протоколът все още не е готов за използване по подразбиране поради откритите проблеми, изискващи отделно разглеждане.
- Добавен е набор от опции за конфигуриране на SSL-соединението при работа през прокси.
- Разширена е информацията, предоставяна при използване на преобразуващи филтри „clean“ и „smudge“. Например, сега се показва обектът , в който се появява преобразуваният blob.
- За избягване на объркване в командата „git describe“, вече винаги се прилага разширен режим на изход („—long“), ако е открит свързан с комита заменен етикет (по-рано, подписан или анотиран етикет, описващ комита, се извеждаше дори ако е бил преименуван или преместен в йерархията „refs/tags/“, и командата „git show tag^0“ не работеше както се очакваше — „refs/tags/tag“ не беше намерен или дори се извеждаше друг етикет).
- При изпълнение на „git pull“ вече се извежда предупреждение, ако явно не е зададена конфигурационната променлива pull.rebase и не са приложени опции „—[no-]rebase“ или „—ff-only“. За потискане на предупреждението от тези, които не планират да извършват операция rebase, може да се зададе на променливата стойност „false“.
- Направена е ревизия на опции „git pull“, общи с „git fetch“. Документирани са непоменаните подобни опции и е осигурен пренос в „git fetch“ на пропуснатите опции.
- В командата „git rebase“ е добавена опция „—no-gpg-sign“ за надписване на настройката „commit.gpgSign“.
- В „git format-patch“ е добавена възможност за показване на заглавията „From:“ и „Subject:“ в неизменен вид, без преобразуване на символи, които липсват в ASCII кодирането.
- В „git log“ е добавена опция „—show-pulls“, позволяваща да се прегледат не само комитите, в които е извършено изменение, но и комитът за сливане на тези изменения от отделна клонка.
- Унифицирано е обработването на интерактивния вход във всички компоненти и е добавено извикване на fflush() след показването на подканата за вход, но преди операцията на четене.
- В git rebase е разрешено повторно прилагане на всички локални комити без предварително изпълнение на операцията checkout, дори ако някои от тях вече са били предадени на upstream.
- Стойността на конфигурационната променлива pack.useSparse е зададена на true, за да се включат по подразбиране оптимизациите, преди това представяни като експериментални.
- В git merge е добавена опцията --autostash.
- Подобрен интерфейсът на sparse-checkout.
- В git update-ref --stdin са добавени няколко нови действия,
които позволяват директен контрол над транзакциите за обновяване на референции, например, за реализиране на двустепенно атомарно обновление на референции в няколко хранилища. - Добавени са шаблони userdiff за документи Markdown.
- Премахна се ограничението за изключване на всички пътища в шаблоните sparse-checkout, водещи до празно работно дърво.
- Операцията git restore --staged --worktree вече по подразбиране използва съдържанието от клона HEAD, вместо да извежда грешка.
- Продължава работата по преминаване на алгоритъма за хеширане SHA-2 вместо SHA-1.
- Преработен е кодът за взаимодействие с GnuPG.
Източник: opennet.ru
