Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

Выпуск системы управления исходными текстами Git 2.56

29.09.2026 08:59 (MSK)

Представлен релиз распределенной системы управления исходными текстами Git 2.56. Код Git распространяется под лицензией GPLv2+. По сравнению с прошлым выпуском в новую версию принято 748 изменений, подготовленных при участии 104 разработчиков, 39 из которых впервые приняли участие в разработке Git. Основные новшества (1, 2, 3):

  • Добавлен режим "git add --resolved" для разрешения конфликтов при слиянии веток, который проверяет файлы на наличие маркеров конфликта и при выявлении маркера хотя бы в одном файле выдаёт ошибку, не индексирует ни один из файлов и показывает список файлов требующих исправления. В отличие от команды "git add --update" в новом режиме обрабатываются только файлы, находящиеся в состоянии конфликта, а не связанные с конфликтом изменённые файлы игнорируются, что позволяет безопасно завершать слияние веток, даже если в рабочем каталоге находятся другие незавершённые правки (команда "git add --update" добавляла в индекс все ранее отслеживаемые изменённые файлы в рабочем каталоге).
  • Значительно ускорена работа с большими репозиториями, за счёт оптимизации алгоритма поиска последних общих коммитов при слиянии веток и сравнении коммитов. В процессе работы теперь учитываются коммиты, принадлежащие исключительно одной из веток, что позволяет остановить сканирование сразу после обнаружения всех возможных общих предков, не тратя время на дальнейший перебор истории изменений. В одном из протестированных репозиториев скорость поиска выросла в среднем в 20 раз, а в другом ускорение достигало 70 раз. При выполнении команды "git merge-base --all v4.8 v4.9" в репозитории с ядром Linux количество шагов обхода уменьшилось со 167 тысяч до 3.8 тысяч.
  • Для серверного применения адаптирован режим перепаковки "--path-walk", позволяющий создавать более компактные pack-файлы за счёт группировки объектов по их пути в дереве каталогов (например, для репозитория Fluent UI использование "--path-walk" позволило уменьшить размер pack-файла с 558 МБ до 164 МБ). В новой версии реализована возможность использования режима "--path-walk" совместно с битовыми картами достижимости (reachability bitmap) и дельта-островами (delta island), применяемыми git-хостингами для ускорения работы и изоляции форков от основного репозитория.
  • Устранены узкие места, приводившие к избыточным вычислениям в больших репозиториях: убраны лишние проверки состояния файлов при записи в reftable; исключено повторное сканирование списка при каждой вставке нового pack-файла; ускорены операции с reftable, в которых накопилось много записей об удалении; оптимизирована работа "git diff" при указании ограничений по файловым путям. После внесения оптимизаций работа с reftable при большом числе удалений ускорилась в 65 раз (с 13 секунд до 0.2 секунды), а выполнение проблемной команды "git diff" в репозитории Chromium с 500000 элементами в индексе стало занимать 0.07 секунд вместо 8 минут.
  • В экспериментальную команду "git history", предоставляющую возможности для перезаписи истории изменений, добавлена операция "git history drop" для удаления выбранного коммита с автоматическим прикреплением его потомков к родительскому коммиту.
  • Добавлена команда "git branch --delete-merged 'origin/*' 'topic-*'" для безопасного удаления групп локальных веток, изменения из которых уже переданы во внешний репозиторий. Для фильтрации веток и репозиториев допускается использование масок. Для анализа претендентов на удаление, без фактического выполнения операции, можно использовать флаг "--dry-run".
  • Добавлена команда "git refs create|update|delete|rename", в которой объединены низкоуровневые операции для создания, удаления, переименования и обновления ссылок.
  • В команду "git bisect run" добавлена опция "--reset-when-found=[<where>]", которая автоматически возвращает репозиторий в состояние до начала поиска или оставляет активным проблемный коммит, без необходимости отдельного запуска команды "git bisect reset".
  • В команду "git replay" добавлен флаг "--linearize" для использования плоской топологии слияния, по аналогии с "git rebase --no-rebase-merges", но без обращения к рабочему дереву.
  • В команде "git log --follow" реализовано отслеживание переименования файлов в нелинейной истории изменений, например, при слиянии подветок. Путь к файлу теперь фиксируется отдельно для каждого родительского коммита, что делает результат независимым от порядка обхода истории коммитов.
  • Добавлена возможность применения команды "git repack -a --filter=blob:limit=1m --drop-filtered" для удаления больших blob-объектов, загруженных на лету (on demand) из внешнего репозитория и не используемых в текущем индексе. При обращении к этим объектам в дальнейшем они будут автоматически повторно загружены.
  • В команде "git log --graph" для графов с несколькими независимыми корнями реализовано добавление отступов для наглядного отделения несвязанных коммитов.
  • Обеспечено выявление типовых опечаток, таких как указание "git push origin/main" вместо "git push origin main" или "git branch --set-upstream-to origin main" вместо "git branch --set-upstream-to=origin/main", и вывод подсказки по использованию корректного варианта.


  1. Главная ссылка к новости (https://lore.kernel.org/lkml/x...)
  2. OpenNews: 98% запросов к git.kernel.org формируют боты, создавая огромную паразитную нагрузку
  3. OpenNews: Выпуск Git 2.55 c включением по умолчанию поддержки Rust
  4. OpenNews: Выпуск системы управления исходными текстами Git 2.54
  5. OpenNews: Выпуск системы управления исходными текстами Git 2.53
  6. OpenNews: В Git 3.0 предложено сделать Rust обязательной частью сборочной инфраструктуры
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66362-git
Ключевые слова: git
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (12) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:28, 29/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/–
    > выполнение проблемной команды "git diff" в репозитории Chromium с 500000 элементами в индексе стало занимать 0.07 секунд вместо 8 минут.

    Сильно!

     
     
  • 2.2, Аноним (2), 11:36, 29/09/2026 [^] [^^] [^^^] [ответить]  
  • –6 +/–
    Конечно, зачем проверять что-то там. Глупости какие.
     
     
  • 3.16, Аноним (16), 15:14, 29/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Ничего не убирали кроме квадратичной сложности, https://github.com/git/git/commit/716766765c945c9ca62f24f6debc3f255ff3b6a6
     
     
  • 4.20, Аноним (2), 16:00, 29/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Именно так гонки и появляются.
     

  • 1.3, Аноним (3), 11:48, 29/09/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –6 +/–
     

  • 1.8, Sm0ke85 (ok), 12:06, 29/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    >Обеспечено выявление типовых опечаток, таких как указание "git push origin/main" вместо "git push origin main" или "git branch --set-upstream-to origin main" вместо "git branch --set-upstream-to=origin/main", и вывод подсказки по использованию корректного варианта.

    Пользуюсь табом и стрелочками - проблем никогда не было)))))

    Зачем оно...? Что за сценарий привел к необходимости Этого...?

     
     
  • 2.10, Жироватт (ok), 13:01, 29/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    ЫЫ же. Нагаллюцинировал себе команду, а выполнить не может - ошибка-с.
     
     
  • 3.11, limafresh (ok), 13:07, 29/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Нагаллюцинировал себе команду

    Ну или ИИ нагаллюцинировал на запрос дать команду для чего-то там

     
     
  • 4.19, Аноним (19), 15:56, 29/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    тулинг для ЫЫ, апи для агентов и всякая ересь, хотя вроде языковая модель, должна прочесть --help или на крайняк man/doc, а толку если от интеллекта там только буква Ы :) Вот вам и подменили понятия, "пена у рта, ЫЫ пишет код".
     
  • 3.17, Sm0ke85 (ok), 15:46, 29/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    >ЫЫ же. Нагаллюцинировал себе команду, а выполнить не может - ошибка-с.

    Тогда да, тогда резон понятен))))

     
  • 3.18, Аноним (19), 15:53, 29/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    А не за горами практика ЕйджентЭйПиАй :)))

    пс: текст программы раньше писали для людей, а теперь пишем для программ :)))) собака и хвост!

     

  • 1.21, Аноним (21), 17:00, 29/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    > В команде "git log --follow" реализовано отслеживание переименования файлов в нелинейной истории изменений, например, при слиянии подветок.

    Как всегда: Сначала добавим возможность, которой все начнут пользоваться, а сильно потом добавим и нормальную работу с этим.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить новость, Поддержать