github/gitignore · Go.gitignore
Penjelasan template .gitignore Go
Menjelaskan mengapa Go.gitignore mengabaikan biner, biner pengujian, profil coverage, dan go.work, serta mengapa file eksekusi tanpa ekstensi harus diblokir secara terpisah.
Go.gitignore menangani biner hasil build, hasil pengujian dan coverage, serta file workspace lokal. Go mengunduh dependensi ke cache modul ($GOPATH/pkg/mod), sehingga tidak ada folder raksasa seperti node_modules milik Node di dalam repositori, dan templatenya pun pendek.
go.mod dan go.sum tidak diabaikan. Kedua file ini mencatat dependensi modul dan checksum-nya, jadi wajib di-commit.
Penjelasan per aturan
| Pola | Apa yang diabaikan dan mengapa |
|---|---|
*.exe*.exe~*.dll*.so*.dylib | Biner dan pustakaHasil go build dan pustaka bersama yang dibuat dengan cgo. Karena di-build terpisah untuk setiap platform, didistribusikan sebagai artefak rilis, bukan lewat repositori. |
*.test | Biner pengujianFile eksekusi pengujian yang dibuat dengan go test -c. Nama paket diberi akhiran .test. |
*.outcoverage.**.coverprofileprofile.cov | Coverage dan profilHasil dari perintah seperti go test -coverprofile=coverage.out. Ini nilai pengukuran yang berubah setiap kali dijalankan. |
go.workgo.work.sum | WorkspaceFile yang dipakai saat mengembangkan beberapa modul bersama secara lokal, dan menunjuk path di disk Anda. Dokumentasi go help work juga menjelaskan bahwa memasukkan go.work ke kontrol versi umumnya tidak disarankan. |
.env | Variabel lingkunganFile berisi pengaturan lokal dan nilai rahasia. File contoh di-commit dengan nama lain (misalnya .env.example). |
Hal yang perlu diperhatikan dalam praktik
- Di Linux dan macOS,
go buildmembuat file eksekusi tanpa ekstensi (nama modul). Template tidak memblokirnya, jadi tambahkan aturan sendiri seperti/myappatau/bin/. vendor/tidak diabaikan. Ada tim yang memasukkan dependensi ke repositori dengango mod vendor, jadi putuskan sesuai kebijakan tim.*.outmengabaikan semua file yang namanya berakhiran.out, jadi jika ekstensi ini dipakai untuk file nilai harapan pengujian, beri pengecualian seperti!testdata/**/*.out.- Jika memakai GoLand, pilih juga template JetBrains.
Template asli
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/
Sumber template: github/gitignore/Go.gitignore @356fd7b (2026-09-11) · CC0-1.0