# Новый хэш по умолчанию в Git — что это значит

Published: 2026-10-02

Предлагаемый Git SHA-256 по умолчанию создает границу совместимости для новых репозиториев. Мы проверяем официальный план, возражение Скотта Чэкона и работающее исключение предварительного просмотра GitHub, затем рассматриваем Pi 1.0 и SvelteKit 3. Вердикт: NEEDS REVIEW.

Canonical: https://thedailydiff.dev/ru/video/2026-10-02-git-hash-split/

## Что освещается в этом видео

- Почему два репозитория Git могут отказаться взаимодействовать?
- Что на самом деле меняет Git 3?
- Зачем заменять SHA-1, если Git обнаруживает коллизии?
- Что показала наша локальная проверка совместимости?
- Что выдерживает сбой в Pi Durable?

## Главы

- 0:00 Почему два репозитория Git могут отказаться взаимодействовать?
- 0:34 Что на самом деле меняет Git 3?
- 0:58 Зачем заменять SHA-1, если Git обнаруживает коллизии?
- 1:51 Что показала наша локальная проверка совместимости?
- 2:49 Что выдерживает сбой в Pi Durable?
- 3:30 Что SvelteKit 3 мигрирует для вас?
- 4:03 Что доказывает рабочее исключение GitHub?
- 4:38 Почему мой вердикт зависит от всей цепочки инструментов?

## Переведенная стенограмма

Переведено с оригинального английского повествования. Доступные аудио и субтитры контролируются YouTube.

### Почему два репозитория Git могут отказаться взаимодействовать?

0:00 Казалось бы, обновление Git сохраняет взаимодействие ваших инструментов. Планируемый Git новый хэш по умолчанию создает репозитории, с которыми сегодня старый формат не может взаимодействовать. В этом видео: зачем менять? Что ломается? Кто готов? На GitHub уже есть работающее исключение. Я покажу вам, что это доказывает, в конце. Пятница, второе октября, и это The Daily Diff.

0:18 В четверг сооснователь GitHub назвал запланированное изменение Git дорогостоящей ошибкой. Pi выпустил новую систему агентов, а SvelteKit — очередную миграцию. Скотт Чэкон помогал создавать GitHub и написал Pro Git, так что эта жалоба поступает изнутри. Дом также продает инструменты Git. Во-первых, сам план.

### Что на самом деле меняет Git 3?

0:35 Git 3 по умолчанию будет использовать SHA-256 для новых репозиториев, как только библиотеки и хостинговые службы будут готовы его поддерживать. Официальный документ не указывает дату выпуска и сохраняет поддержку SHA-1. Ваш существующий репозиторий не меняет формат магическим образом при обновлении исполняемого файла. Это стоит помнить, прежде чем ваш групповой чат назначит экстренную миграцию. Драма — это предлагаемое значение по умолчанию, и крайний срок в настоящее время — пустой календарь.

### Зачем заменять SHA-1, если Git обнаруживает коллизии?

0:58 Зачем вообще что-то менять? Git именует объекты, хэшируя их содержимое. Файлы поступают в деревья, а коммиты ссылаются на деревья и более ранние коммиты. Это обеспечивает целостность всей истории. Измените схему хэширования, и имена объектов тоже изменятся, включая ссылки, хранящиеся внутри других объектов. Чэкон обращается к Линусу Торвальдсу, создателю Git, утверждая, что надежное

1:17 распространение имеет значение. Это историческая позиция, и Линус выбрал SHA-1 еще в две тысячи пятом году. С тех пор ситуация с безопасностью изменилась. Исследователи продемонстрировали коллизии SHA-1 в две тысячи семнадцатом году, а позже продемонстрировали атаку с выбранным префиксом против сертификатов личности PGP. Современный Git обнаруживает известные атаки коллизий с помощью усиленного SHA-1. Его сопровождающие также хотят защиты от будущих атак, что является разумным требованием к подписям.

1:41 Чэкон считает, что счет экосистемы покупает слишком мало безопасности. Он предлагает подписывать отдельную сильную контрольную сумму содержимого дерева, сохраняя при этом сегодняшнюю адресацию объектов. Что ломается? Я создал оба формата локально и хэшировал один и тот же маленький файл.

### Что показала наша локальная проверка совместимости?

1:54 Одно имя объекта имеет сорок шестнадцатеричных символов, другое — шестьдесят четыре. Затем я попытался извлечь между ними. Мой установленный Git отклонил это из-за несоответствия алгоритмов, именно тот разрыв совместимости, который описан в текущем официальном руководстве. Это использовало мой старый установленный Git, так что это говорит нам о сегодняшней границе. Назвать это тестом невыпущенного Git 3 было бы творческим учетом. Работа по миграции затрагивает скрипты, которые предполагают длину хэша, и системы, которые ссылаются на имена объектов.

2:19 Перехэширование истории требует сопоставления между этими идентификаторами. Дизайн перехода Git включает это сопоставление и обработку подписей. Готовность к внедрению имеет значение, потому что проектный документ не обновляет библиотеку, скрывающуюся внутри вашего любимого инструмента разработчика. В этом и заключается человеческая цена в аргументах Чэкона. Каждый сопровождающий инструмента получает еще одну задачу по совместимости, в то время как пользователи обнаруживают, что их система контроля версий теперь сама нуждается в контроле версий. На данный момент протестируйте свой хост и инструментарий, прежде чем выбирать новый формат для

2:44 проекта. Существующие команды могут сохранять свой текущий формат, пока эта экосистема наверстает упущенное. Тем временем Pi достиг версии 1.0.

### Что выдерживает сбой в Pi Durable?

2:51 Это система агентов для кодирования от Earendil, с нативной поддержкой MCP через Codemode и инструментами, загружаемыми по мере необходимости. Команда называет минимализм главной целью. Если ваша установка агента уже напоминает небольшое правительство, сохранение инструментов вне запроса до тех пор, пока они не потребуются, звучит как административная реформа. Также был выпущен Pi Durable, отдельная экспериментальная среда. Задачи сохраняют контрольные точки, чтобы перезапущенный процесс мог продолжить незавершенную работу из постоянного хранилища. Важная деталь — повторное выполнение инструмента.

3:16 Инструмент, прерванный сбоем, перезапускается только тогда, когда он объявляет это безопасным. В противном случае модели сообщается, что она была прервана. Это полезная граница, когда инструмент может тратить деньги. Я хочу, чтобы ассистент запомнил мой список покупок, не празднуя сбой тем, что купит его дважды.

### Что SvelteKit 3 мигрирует для вас?

3:30 SvelteKit 3 также вышел в четверг, перенеся конфигурацию в Vite и заменив dollar lib на hash lib, используя стандартные импорты подпутей пакетов. Команда миграции переписывает то, что может, и оставляет список задач для остального. Ваш робот может помочь, и ваш diff все еще заслуживает прочтения. В объявлении даже привлекаются ваши роботы-друзья для оставшихся задач. Мы достигаем точки, когда обновление фреймворка поставляется с домашним заданием и предложенным временным учителем. А удаленные функции по-прежнему нуждаются в экспериментальном Async Svelte.

3:56 Основной номер версии кажется обнадеживающим, но отдельные функции несут свои собственные метки зрелости. Проверьте те, которые вы на самом деле используете.

### Что доказывает рабочее исключение GitHub?

4:03 Так кто готов к новому формату Git? Вот это исключение. Публичный репозиторий GitHub, содержащий доклад Брайана Карлсона, уже возвращает полное имя объекта SHA-256. Я проверил публичный удаленный репозиторий напрямую. Слайды доклада называют поддержку частным предварительным просмотром и говорят, что создание репозитория все еще в процессе. За кулисами происходит реальный прогресс. Это доказывает, что GitHub может обслуживать этот предварительный репозиторий.

4:24 Это не дает нам никаких гарантий, что обычное создание проекта или все ваши интеграции готовы. Исключение имеет границу разрешений. Если вы предпочитаете прочитать это, а не услышать от меня, diff приходит в ваш почтовый ящик каждое утро, бесплатно на the daily diff dot dev, ссылка ниже. Так что сегодняшний вердикт — NEEDS REVIEW.

### Почему мой вердикт зависит от всей цепочки инструментов?

4:40 Я бы оставил более сильный вариант хэширования и проверил всю цепочку инструментов, прежде чем менять настройки по умолчанию. Совместимость — часть внедрения улучшения безопасности. И это diff на сегодня. Я Нико из Axrisi. Объединяйте ответственно.

## Источники

- [Chacon](https://blog.gitbutler.com/git-3-sha-256) — blog.gitbutler.com
- [Git's official plan](https://git-scm.com/docs/BreakingChanges) — git-scm.com
- [Current interoperability](https://git-scm.com/docs/git-init) — git-scm.com
- [Transition design](https://git-scm.com/docs/hash-function-transition) — git-scm.com
- [Independent collision research](https://sha-mbles.github.io/) — sha-mbles.github.io
- [GitHub preview repository](https://github.com/bk2204/talk-rust-in-git) — github.com
- [Pi 1.0](https://earendil.com/posts/pi-1-0/) — earendil.com
- [Pi Durable](https://earendil.com/posts/pi-durable/) — earendil.com
- [SvelteKit 3](https://svelte.dev/blog/sveltekit-3-is-here) — svelte.dev
- [HN discussion](https://news.ycombinator.com/item?id=49924179) — news.ycombinator.com
