go mod — система управления зависимостями (с Go 1.11, по умолчанию с 1.16).
go mod init github.com/user/project # создать go.mod
go mod tidy # добавить нужные, убрать лишние
go mod download # скачать зависимости
go mod vendor # скопировать в vendor/
go mod graph # граф зависимостей
go mod why github.com/pkg/errors # почему нужна эта зависимость
go.mod — декларация модуля и зависимостей:
module github.com/user/project
go 1.22
require (
github.com/gin-gonic/gin v1.9.1
google.golang.org/grpc v1.60.0
)
go.sum — хеши зависимостей для верификации. Коммитится в репо.
go get github.com/pkg/errors@v0.9.1 # конкретная версия
go get github.com/pkg/errors@latest # последняя
go get -u ./... # обновить все
Semver: v1.2.3. Мажорная версия >=2 меняет import path: github.com/user/project/v2.