github/gitignore · Go.gitignore

Go .gitignore テンプレート解説

Go.gitignore がバイナリ、テストバイナリ、カバレッジプロファイル、go.work を無視する理由と、拡張子のない実行ファイルを別途防ぐ必要がある理由を説明します。

ジェネレーターで開く JetBrains, VisualStudioCode, macOS, Linux と一緒に開く

Go.gitignore はビルド結果のバイナリ、テスト・カバレッジの成果物、そしてローカルのワークスペースファイルを扱う。Go は依存関係をモジュールキャッシュ($GOPATH/pkg/mod)に取得するため、Node の node_modules のような巨大なフォルダーがリポジトリ内にできず、テンプレートも短い。

go.modgo.sum は無視の対象ではない。この 2 つのファイルはモジュールの依存関係とチェックサムを記録するので、必ずコミットする。

ルール別の解説

パターン何を、なぜ無視するか
*.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

一緒に使うテンプレート

ほかのテンプレートの解説