github/gitignore · Go.gitignore
Plantilla .gitignore de Go explicada
Explica por qué Go.gitignore ignora binarios, binarios de prueba, perfiles de cobertura y go.work, y por qué hay que bloquear aparte los ejecutables sin extensión.
Go.gitignore trata los binarios resultantes de la compilación, los artefactos de pruebas y cobertura, y los archivos de espacio de trabajo local. Go descarga las dependencias en la caché de módulos ($GOPATH/pkg/mod), por lo que no aparece dentro del repositorio una carpeta enorme como el node_modules de Node, y la plantilla también es corta.
go.mod y go.sum no se ignoran. Estos dos archivos registran las dependencias y sumas de verificación del módulo, así que siempre se confirman.
Explicación regla por regla
| Patrón | Qué ignora y por qué |
|---|---|
*.exe*.exe~*.dll*.so*.dylib | Binarios y bibliotecasSon los resultados de go build y las bibliotecas compartidas creadas con cgo. Se compilan por separado para cada plataforma, así que se distribuyen como artefactos de versión y no a través del repositorio. |
*.test | Binarios de pruebaSon los ejecutables de prueba creados con go test -c. Llevan .test tras el nombre del paquete. |
*.outcoverage.**.coverprofileprofile.cov | Cobertura y perfilesSon resultados generados por comandos como go test -coverprofile=coverage.out. Son mediciones que cambian en cada ejecución. |
go.workgo.work.sum | Espacio de trabajoSon archivos que se usan para desarrollar varios módulos juntos en local y apuntan a rutas de tu disco. La documentación de go help work también explica que en general no se recomienda incluir go.work en el control de versiones. |
.env | Variables de entornoEs el archivo con la configuración local y los valores secretos. El archivo de ejemplo se confirma con otro nombre (por ejemplo, .env.example). |
Precauciones en la práctica
- En Linux y macOS,
go buildcrea un ejecutable sin extensión (con el nombre del módulo). La plantilla no lo bloquea, así que añade tú mismo una regla como/myappo/bin/. vendor/no se ignora. Hay equipos que meten las dependencias en el repositorio congo mod vendor, así que decídelo según vuestra política.*.outignora todos los archivos cuyo nombre termina en.out, así que si usas esa extensión para archivos de valores esperados en pruebas, añade una excepción como!testdata/**/*.out.- Si usas GoLand, selecciona también la plantilla JetBrains.
Plantilla original
Go.gitignore
# 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/
Origen de las plantillas: github/gitignore/Go.gitignore @356fd7b (2026-09-11) · CC0-1.0