github/gitignore · Go.gitignore
Go-.gitignore-Vorlage erklärt
Erklärt, warum Go.gitignore Binärdateien, Test-Binärdateien, Coverage-Profile und go.work ignoriert und warum ausführbare Dateien ohne Endung separat blockiert werden müssen.
Go.gitignore behandelt die Binärdateien aus dem Build, Test- und Coverage-Artefakte sowie lokale Workspace-Dateien. Da Go Abhängigkeiten in den Modul-Cache ($GOPATH/pkg/mod) lädt, entsteht im Repository kein riesiger Ordner wie Nodes node_modules, und die Vorlage ist kurz.
go.mod und go.sum werden nicht ignoriert. Diese beiden Dateien halten die Abhängigkeiten und Prüfsummen des Moduls fest und müssen unbedingt committet werden.
Regeln im Einzelnen
| Muster | Was ignoriert wird und warum |
|---|---|
*.exe*.exe~*.dll*.so*.dylib | Binärdateien und BibliothekenErgebnisse von go build und mit cgo erzeugte gemeinsam genutzte Bibliotheken. Sie werden für jede Plattform separat gebaut und als Release-Artefakte verteilt, nicht über das Repository. |
*.test | Test-BinärdateienMit go test -c erzeugte ausführbare Testdateien. An den Paketnamen wird .test angehängt. |
*.outcoverage.**.coverprofileprofile.cov | Coverage und ProfilingErgebnisse von Befehlen wie go test -coverprofile=coverage.out. Es sind Messwerte, die sich bei jedem Lauf ändern. |
go.workgo.work.sum | WorkspaceDateien, mit denen mehrere Module lokal gemeinsam entwickelt werden; sie verweisen auf Pfade auf Ihrer Festplatte. Auch die Dokumentation go help work erklärt, dass es im Allgemeinen nicht empfohlen wird, go.work unter Versionskontrolle zu stellen. |
.env | UmgebungsvariablenDatei mit lokaler Konfiguration und geheimen Werten. Eine Beispieldatei wird unter anderem Namen committet (z. B. .env.example). |
Hinweise für die Praxis
- Unter Linux und macOS erzeugt
go buildeine ausführbare Datei ohne Endung (mit dem Modulnamen). Die Vorlage kann sie nicht blockieren; ergänzen Sie selbst eine Regel wie/myappoder/bin/. vendor/wird nicht ignoriert. Manche Teams legen Abhängigkeiten mitgo mod vendorins Repository; entscheiden Sie gemäß Ihrer Richtlinie.*.outignoriert alle Dateien, deren Name auf.outendet. Verwenden Ihre Dateien mit erwarteten Testergebnissen diese Endung, legen Sie eine Ausnahme wie!testdata/**/*.outan.- Wenn Sie GoLand verwenden, wählen Sie zusätzlich die JetBrains-Vorlage.
Originalvorlage
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/
Vorlagenquelle: github/gitignore/Go.gitignore @356fd7b (2026-09-11) · CC0-1.0