github/gitignore · Go.gitignore
Modèle .gitignore Go expliqué
Explique pourquoi Go.gitignore ignore les binaires, les binaires de test, les profils de couverture et go.work, et pourquoi il faut bloquer séparément les exécutables sans extension.
Go.gitignore traite les binaires issus du build, les artefacts de test et de couverture, ainsi que les fichiers d'espace de travail locaux. Comme Go télécharge les dépendances dans le cache de modules ($GOPATH/pkg/mod), aucun énorme dossier comme le node_modules de Node n'apparaît dans le dépôt, et le modèle est court.
go.mod et go.sum ne sont pas ignorés. Ces deux fichiers enregistrent les dépendances du module et leurs sommes de contrôle : il faut impérativement les commiter.
Explication règle par règle
| Motif | Ce qui est ignoré et pourquoi |
|---|---|
*.exe*.exe~*.dll*.so*.dylib | Binaires et bibliothèquesRésultats de go build et bibliothèques partagées créées avec cgo. Ils sont compilés séparément pour chaque plateforme et se distribuent comme artefacts de release, pas via le dépôt. |
*.test | Binaires de testExécutables de test créés par go test -c. Le suffixe .test est ajouté au nom du paquet. |
*.outcoverage.**.coverprofileprofile.cov | Couverture et profilageRésultats produits par des commandes comme go test -coverprofile=coverage.out. Ce sont des mesures qui changent à chaque exécution. |
go.workgo.work.sum | Espace de travailFichiers utilisés pour développer plusieurs modules ensemble en local ; ils pointent vers des chemins de votre disque. La documentation go help work indique elle aussi qu'il n'est généralement pas recommandé de placer go.work sous contrôle de version. |
.env | Variables d'environnementFichier contenant la configuration locale et des valeurs secrètes. Le fichier d'exemple se commite sous un autre nom (par exemple .env.example). |
Points d'attention en pratique
- Sous Linux et macOS,
go buildproduit un exécutable sans extension (au nom du module). Le modèle ne peut pas le bloquer : ajoutez vous-même une règle comme/myappou/bin/. vendor/n'est pas ignoré. Certaines équipes placent les dépendances dans le dépôt avecgo mod vendor; décidez selon votre politique.*.outignore tous les fichiers dont le nom se termine par.out: si vos fichiers de résultats attendus de tests utilisent cette extension, ajoutez une exception comme!testdata/**/*.out.- Si vous utilisez GoLand, sélectionnez aussi le modèle JetBrains.
Modèle d'origine
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/
Source des modèles : github/gitignore/Go.gitignore @356fd7b (2026-09-11) · CC0-1.0