#проGit: Обзор новой версии Git 2.45

    Приготовили для вас подробнейший обзор изменений и улучшений, которые обязательно привлекут ваше внимание и помогут значительно облегчить работу с Git.

    1. Поддержка нового бэкенда "reftable"

    Теперь Git стал еще более мощным с добавлением нового бэкенда "reftable", который обеспечивает эффективное хранение ссылок на ветки и теги. Этот бэкенд, используя блочное хранилище, как в проекте JGit, оптимизирован для работы с огромным количеством ссылок.

    Это особенно полезно в репозиториях, где традиционные методы хранения приводят к значительным накладным расходам.
    Включить новый бэкенд можно с помощью команды:
    
    git init --ref-format=reftable /path/to/repo
    

    2. Плавный переход на SHA-256

    Git делает шаг в будущее, добавляя поддержку для идентификаторов объектов на базе SHA-256 наряду с SHA-1. Новый формат объектов "compatibility" позволяет легко ссылаться на объекты с использованием как основного, так и запасного хэша.
    Пример инициализации такого репозитория:
    
    git init --object-format=sha256 /path/to/repo
    cd /path/to/repo
    git config extensions.compatObjectFormat sha1
    

    3. Улучшенная диагностика с "git rev-list"

    Команда git rev-list теперь умеет показывать идентификаторы объектов, которые отсутствуют в локальном репозитории.
    Это новшество особенно полезно для диагностики повреждений репозитория:
    
    git rev-list --missing=print --all | grep '^?'
    

    4. Новая команда "git reflog list"

    С новой командой git reflog list стало проще, чем когда-либо, просматривать все известные reflog-и и соответствующие им ссылки на теги и ветки.

    5. Настройка префиксов в "git diff"

    Теперь у вас есть возможность задать собственные префиксы для вывода git diff, которые отображаются перед файловым путём.
    Пример инициализации такого репозитория:
    
    git config diff.srcPrefix 'old/'
    git config diff.dstPrefix 'new/'
    

    6. Новый параметр core.commentString

    Добавлен параметр core.commentString, который позволяет использовать любую строку вместо символа "#" для игнорирования комментариев в сообщениях для коммитов. Теперь также поддерживаются многобайтовые символы в качестве разделителя комментария.

    7. Комментарии в "git config"

    Теперь git config поддерживает опцию --comment, что позволяет сохранять пояснительные комментарии прямо в файле .gitconfig.
    Пример инициализации такого репозитория:
    
    git config --comment 'to show the merge base' merge.conflictStyle diff3
    tail -n 2 .git/config
    [merge]
    conflictStyle = diff3 # to show the merge base
    

    8. Новая опция в "git cherry-pick"

    Команда git cherry-pick получила новую опцию --empty, которая автоматически удаляет избыточные коммиты, аналогично опции --empty в git-rebase и git-am.

    9. Обновление команды "git checkout-p"

    Теперь в git checkout -p можно использовать символ "@" в качестве синонима имени "HEAD", что делает работу с Git ещё удобнее.

    Не пропустите последние новости. Подписывайтесь!