Команда разработчиков Git рада сообщить о релизе Git 2.7.0.
Этот выпуск содержит более 800 коммитов от 81 автора, 26 из которых не так давно присоединились к проекту.
git bisect теперь не только для регрессий
Несмотря на то, что git bisect наиболее часто используется для поиска регрессий, такой подход может быть применён при поиске любых других изменений. Какие бы изменения вы не искали, вы отмечаете хорошими ревизии до изменений и плохими после. Это может путать, особенно, если вы хотите найти коммит, исправляющий ошибку. Чтобы решить эту проблему, добавлена возможность вместо good и bad использовать свои собственные термины. Без дополнительных настроек можно использовать более нейтральные термины old и new:
$ git bisect start
$ git bisect old v4.2
$ git bisect new master
Указать свои собственные термины можно следующим образом:
$ git bisect start --term-old yucky --term-new yummy
$ git bisect yucky v4.2
$ git bisect yummy master
Новый параметр конфигурации для --recurse-submodules
Если вы используете субмодули, то вероятно совершали ошибку при отправке изменений в главный модуль без первоначальной отправки соответствующих изменений в субмодули. Надо было указывать опцию --recurse-submodules, например:
$ git push --recurse-submodules=on-demand origin
Теперь вы можете задать такое поведение по умолчанию с помощью нового параметра конфигурации:
$ git config push.recurseSubmodules on-demand
Если вы предпочитаете, чтобы Git предупреждал о потенциальных проблемах, используйте:
$ git config push.recurseSubmodules check
Дальнейшее совершенствование worktree
Помните команду git worktree
, которая была введена в Git 2.5.0?
Она позволяет создавать множественные рабочие копии, которые связаны с одним локальным репозиторием Git.
В Git 2.7.0, git worktree продолжает улучшаться:
- Новая команда
git worktree list
позволяет получить список рабочих копий, связанных с текущим репозиторием. - git bisect теперь может запускаться в любом worktree, или даже в двух одновременно.
- Вы теперь можете клонировать из связанного worktree.
- Улучшена поддержка субмодулей.
Поддержка git LFS для git p4
git p4 является мостом между Git и Perforce, который позволяет получать коммиты из Perforce в Git, отправлять коммиты из Git на сервер Perforce и т. д. (Существуют похожие инструменты для работы с Subversion, Mercurial, Bazaar, TFS, и др.) git p4 теперь может хранить большие файлы в Git LFS («Git Large File Storage»), что позволяет избежать раздувания репозитория на диске. Обратите внимание, что эта функция пока не поддерживает git p4 submit.
Более согласованные команды для получения списка ссылок
В Git есть три основных способа получения списка ссылок: git branch для веток; git tag для меток; и git for-each-ref для ссылок любого типа. Но эти команды, несмотря на их перекрывающуюся функциональность, имели разные возможности и опции.
Теперь, благодаря работе студента Google Summer of Code, Karthik Nayak, эти команды имеют более согласованный интерфейс. Все три команды поддерживают следующие опции:
--points-at <object>
: получить список ссылок которые указывают на заданный объект;--merged [<commit>]
: получить список ссылок, которые были объединены с коммитом (HEAD по умолчанию);--no-merged [<commit>]
: получить список ссылок, которые не были объединены с коммитом (HEAD по умолчанию);--contains [<commit>]
: получить список ссылок которые содержат указанный коммит (HEAD по умолчанию).
Они также получили новое форматирование и параметры сортировки.
Другие изменения
- git stash show теперь поддерживает два параметра конфигурации: stash.showPatch и stash.showDiff, которые задают формат вывода по умолчанию.
- git blame теперь корректно работает с опцией
--first-parent
, а также, когда--reverse
и--first-parent
используются вместе. - Улучшен внешний вид gitk на high-DPI мониторах.
- Исправления безопасности [1] [2].
>>> Подробности