Версия: | 2.25 |
Дата релиза: | 13 января 2020 |
Предыдущий релиз: | 2.24 от 3 ноября 2019 (пресс-релиз) |
Страница: | Git |
Состоялся релиз распределенной системы управления версиями Git 2.25. Рассмотрим основные изменения в новой версии.
Частичное клонирование
Ведется разработка поддержки частичного клонирования, которое полезно при клонировании очень крупных репозиториев.
При обычном клонировании репозитория выполняется полное копирование всех данных репозитория. Для очень больших репозиториев подобные действия могут быть очень затратными по времени и сетевым ресурсам. Иногда пользователям требуется получить только часть репозитория. Частичное клонирование позволяет выполнить клонирование только необходимых частей репозитория.
Частичное клонирование пока находится в экспериментальной стадии. Некоторые ресурсы, включая GitHub, пока не поддерживают частичное клонирование.
Для частичного клонирования можно использовать команду вида:
git clone --filter=blob:none --no-checkout /git/repository.git
- Опция --filter задает выборку объектов, которые необходимо клонировать.
- Опция --no-checkout указывает на то, что не требуется выполнять checkout репозитория. Если же checkout будет выполнен, то отсутствующие файлы (которые мы не хотим клонировать) будут загружены.
После выполнения подобного частичного клонирования мы получаем на диске файлы, которые не проверяются на изменения. Теперь нам необходимо сообщить Git’у, какие объекты мы должны игнорировать при выполнении checkout. Для этого была добавлена возможность выборочного checkout.
Если выполнять выборочный checkout «по старому», то можно было бы воспользоваться следующей последовательностью команд:
$ git clone --filter=blob:none --no-checkout /your/repository/here repo
$ cd repo
$ cat >.git/info/sparse-checkout EOF
/*
!/*
EOF
$ git config core.sparseCheckout 1
$ git checkout .
В Git 2.25 ввели новую команду git sparse-checkout, которая значительно упрощает выборочный checkout. Приведенные выше команды можно заменить на следующие:
git clone --filter=blob:none /your/repository/here repo
cd repo && git sparse-checkout init
Что еще нового
- Ранее, в версии Git 2.22, опция --preserve-merges для команды git rebase объявлена устаревшей. Вместо нее была добавлена новая опция --rebase-merges. В Git 2.25 полностью удалены все упоминания старой опции --preserve-merges
- Для команд git add, git commit, git reset и других добавлена новая опция --pathspec-from-file
- Существенно улучшен вывод команды git log --graph
- И некоторые другие изменения...
Комментарии