Git 2.20 был выпущен с улучшениями клонирования, выборки и поиска, все они предназначены для повышения удобства использования и производительности.
Улучшения клонирования означают, что если вы запустите «git clone» для проекта, в котором файл может быть потерян, git должен предупредить вас о предстоящей проблеме. Например, если проект содержит два файла с одинаковыми путями, за исключением изменений регистра, и вы запускаете клон в файловой системе, нечувствительной к регистру, один из файлов будет потерян, потому что базовая файловая система не может содержать оба. файлы одновременно. Раньше это приводило к потере файла, но теперь Git пытается обнаружить подобные случаи и предупредить вас.
Fetch — еще одна область, которую нужно улучшить. В более ранних выпусках правила, используемые командами «git push» и «git fetch» для определения возможности обновления ссылки, были несовместимы. В частности, вы можете использовать выборку для обновления существующих тегов, даже если теги должны быть фиксированными точками привязки. В новой версии «git fetch» запретит обновление существующих тегов, если вы не используете параметр «—force».
Git grep также работал. В более ранних версиях git grep рекурсивно обращается ко всему дереву, что отличается от поведения grep за пределами Git. Теперь вы можете использовать параметр —recursive, так что «git grep —no-recursive» будет таким же, как установка максимальной глубины рекурсии на 0.
Еще одно улучшение удобства использования — создание файлов графика фиксации. До сих пор не было никаких указаний на то, как далеко зашло поколение и сколько осталось времени. Теперь у вас есть индикатор выполнения, как и с командой git status. Оба дополнения предназначены для предоставления дополнительной информации пользователям с большими репозиториями.
Производительность — еще одна область, на которую следует обратить внимание, ряд модулей был переписан на C для повышения производительности. В этом выпуске git submodule update, git rebase и git rebase -i были переписаны на C.
Интерактивная перестановка также была улучшена, поэтому вы можете использовать операцию разрыва в списке дел. Вы можете вставить команду в список, и когда она будет достигнута, управление будет возвращено вам.
Еще одно изменение в rebase — это добавление документации, показывающей, как использовать версию со сценарием в качестве аварийного выхода в недавно объединенном «rebase in C».
Есть ряд других изменений, направленных на повышение гибкости конфигурации Git и исправление ошибок. Более подробная информация доступна на сайте Git.
.