Код
#новости

Вышел Git 2.35 — полная корзина изменений

Разработчики обновили git stash, улучшили Git SSH, добавили поддержку zealous diff3 и выбросили TravisCI.

Релиз 2.35 приносит в Git изменения от 93 контрибьюторов. Из них — 35 нововведений. Вот некоторые из самых интересных — git stash --staged, обновлённый git log и улучшенные подписи Git SSH.

Новый режим для git stash — --staged — упрощает работу со stage-хранилищем. Он позволяет добавлять в stash то, что уже лежит в stage. Это можно рассматривать как git commit, но вместо того, чтобы создать новый коммит, Git запишет изменения в stash. После эти изменения можно будет восстановить и продолжить работу с нужной версией проекта.

Вывод в консоль через git describe теперь настраивается точнее. Разработчики могут выбрать, будут ли показываться дополнительные теги и сколько шестнадцатеричных символов будет выводиться в аббревиатуре идентификатора объекта.

Пример ниже показывает, как это обновление может сочетаться вместе с git log и его параметром --format:

$ git log -8 --format='%(describe:exclude=*-rc*,abbrev=13)'
v2.34.1-646-gaf4e5f569bc89
v2.34.1-644-g0330edb239c24
v2.33.1-641-g15f002812f858
v2.34.1-643-g2b95d94b056ab
v2.34.1-642-gb56bd95bbc8f7
v2.34.1-203-gffb9f2980902d
v2.34.1-640-gdf3c41adeb212
v2.34.1-639-g36b65715a4132

Git 2.35 делает ключи SSH более безопасными. Разработчики могут использовать директивы OpenSSH — valid-before и valid-after, — чтобы проверять, имеет ли объект подпись, которая была корректной, когда её создали.

Кроме этого, релиз 2.35 поддерживает новый тип ключей — user.signingKey, — когда пользователи используют этот ключ дословно, а не хранят путь к файлу, где лежит его подпись.

Авторы Git добавили новый режим обработки конфликтов — zdiff3. Он перемещает все одинаковые строки в начало или конец места конфликта, что уменьшает количество строк конфликтующего кода.

git jump merge научился сужать место merge-конфликтов с помощью pathspec. Например, если разработчик хочет разрешить большой конфликт, но только в определённой секции, то он может запустить следующую команду, чтобы сфокусироваться на директории foo:

$ git jump merge -- foo

Кроме того, можно исключать определённые директории при слиянии:

$ git jump merge -- ':^Documentation'

Авторы ускорили работу --histogram и git diff --color-moved-ws, добавили возможность загружать файлы размером больше чем 4 Гб через Git LFS, изменили функционал в git am, а также подключили sparse-индексы для git reset, git diff, git blame, git fetch и git pull.

Подробный список изменений можно прочитать на официальном блоге Git.


Глубоко, бесплатно:
вебинары по программированию, маркетингу и дизайну.

Расписание

Курс

Профессия Python-разработчик

На Python пишут веб-приложения и нейросети, проводят научные вычисления и автоматизируют процессы. Язык просто выучить, даже если вы никогда не программировали. На курсе вы создадите Telegram-бота, полноценный магазин и задачник для портфолио, а Центр карьеры поможет найти работу Python-разработчиком.

Узнать про курс
Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована