Ответ
Файл go.sum содержит криптографические хеши зависимостей проекта, обеспечивая безопасность и воспроизводимость сборок. Он фиксирует точные версии модулей и их содержимое, предотвращая подмену кода (атаки supply-chain).
Пример структуры:
github.com/example/module v1.2.3 h1:abCdEfGh...
github.com/example/module v1.2.3/go.mod h1:ijKlMnOp...
Зачем:
- Верификация —
go mod verifyпроверяет, что скачанные модули соответствуют хешам. - Консистентность — даже если
go.modразрешает обновления,go.sumгарантирует неизменность ранее использованных версий.
Файл должен коммититься в VCS, иначе другие разработчики или CI могут столкнуться с ошибками при проверке зависимостей.