github/gitignore · Go.gitignore

Разбор шаблона .gitignore для Go

Почему Go.gitignore игнорирует бинарники, тестовые бинарники, профили покрытия и go.work, и почему исполняемые файлы без расширения нужно блокировать отдельно.

Открыть в генераторе Открыть вместе с JetBrains, VisualStudioCode, macOS, Linux

Go.gitignore охватывает бинарники — результаты сборки, артефакты тестов и покрытия, а также локальный файл рабочего пространства. Go загружает зависимости в кэш модулей ($GOPATH/pkg/mod), поэтому огромной папки вроде node_modules из Node внутри репозитория не появляется, и шаблон короткий.

go.mod и go.sum не игнорируются. Эти два файла фиксируют зависимости модуля и их контрольные суммы, поэтому их обязательно коммитят.

Разбор правил

ШаблонЧто и почему игнорируется
*.exe*.exe~*.dll*.so*.dylibБинарники и библиотекиРезультат go build и разделяемые библиотеки, созданные через cgo. Они собираются отдельно под каждую платформу, поэтому распространяются как артефакты релиза, а не через репозиторий.
*.testТестовые бинарникиИсполняемые файлы тестов, созданные командой go test -c. К имени пакета добавляется .test.
*.outcoverage.**.coverprofileprofile.covПокрытие и профилированиеРезультаты команд вроде go test -coverprofile=coverage.out. Это измерения, которые меняются при каждом запуске.
go.workgo.work.sumРабочее пространствоФайл для локальной совместной разработки нескольких модулей; он указывает на пути на вашем диске. Документация go help work также поясняет, что добавлять go.work в систему контроля версий обычно не рекомендуется.
.envПеременные окруженияФайлы с локальными настройками и секретными значениями. Файл-пример коммитят под другим именем (например, .env.example).

На что обратить внимание на практике

Исходный шаблон

Go.gitignoreСтрок правил: 13
# If you prefer the allow list template instead of the deny list, see community template:# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore## Binaries for programs and plugins*.exe*.exe~*.dll*.so*.dylib# Test binary, built with `go test -c`*.test# Code coverage profiles and other test artifacts*.outcoverage.**.coverprofileprofile.cov# Dependency directories (remove the comment below to include it)# vendor/# Go workspace filego.workgo.work.sum# env file.env# Editor/IDE# .idea/# .vscode/

Источник шаблонов: github/gitignore/Go.gitignore @356fd7b (2026-09-11) · CC0-1.0

Шаблоны, используемые вместе

Разборы других шаблонов