Commandes Go (Golang) - Guide CLI complet

🏷️ Lignes des commandes 📅 26/01/2026 22:00:00 👤 Mezgani said
Go Golang Langage Compilé Backend Cli Performance Concurrence Goroutines Développement Devops

Apprenez toutes les commandes Go pour développer des applications performantes. Guide complet incluant compilation, testing et déploiement.

Ligne de commande :
go version
Description :

Affiche la version de Go installée

Options :
  • -m
  • -v

Ligne de commande :
go env
Description :

Affiche les variables d'environnement Go

Options :
  • -json
  • -u
  • -w

Ligne de commande :
go env GOPATH
Description :

Affiche la valeur de GOPATH

Ligne de commande :
go env GOROOT
Description :

Affiche la valeur de GOROOT

Ligne de commande :
go help
Description :

Affiche l'aide générale de Go

Ligne de commande :
go help <commande>
Description :

Affiche l'aide d'une commande spécifique

Ligne de commande :
go mod init
Description :

Initialise un nouveau module Go (crée go.mod)

Options :
  • module-path

Ligne de commande :
go mod init github.com/user/project
Description :

Initialise un module avec un chemin spécifique

Ligne de commande :
go mod tidy
Description :

Nettoie et met à jour go.mod (ajoute les dépendances manquantes, supprime les inutilisées)

Options :
  • -v
  • -e
  • -go
  • -compat

Ligne de commande :
go mod download
Description :

Télécharge les dépendances dans le cache local

Options :
  • -x
  • -json

Ligne de commande :
go mod vendor
Description :

Copie les dépendances dans le dossier vendor/

Options :
  • -v
  • -e

Ligne de commande :
go mod verify
Description :

Vérifie l'intégrité des dépendances téléchargées

Ligne de commande :
go mod why
Description :

Explique pourquoi un module est nécessaire

Options :
  • -m
  • -vendor

Ligne de commande :
go mod graph
Description :

Affiche le graphe des dépendances

Ligne de commande :
go mod edit
Description :

Édite go.mod via ligne de commande

Options :
  • -module
  • -require
  • -droprequire
  • -exclude
  • -dropexclude
  • -replace
  • -dropreplace
  • -retract
  • -go
  • -print
  • -fmt
  • -json

Ligne de commande :
go mod edit -replace=old@v1.0.0=new@v1.1.0
Description :

Remplace une dépendance par une autre

Options :
  • -replace

Ligne de commande :
go mod edit -require=github.com/gin-gonic/gin@v1.9.0
Description :

Ajoute une dépendance à go.mod

Options :
  • -require

Ligne de commande :
go get
Description :

Ajoute une dépendance au module courant

Options :
  • -u
  • -t
  • -d
  • -v
  • -x
  • -insecure

Ligne de commande :
go get github.com/gin-gonic/gin
Description :

Ajoute la dépendance Gin

Options :
  • @version
  • -u

Ligne de commande :
go get github.com/gin-gonic/gin@v1.9.0
Description :

Ajoute une version spécifique de Gin

Options :
  • @latest
  • @master

Ligne de commande :
go get -u ./...
Description :

Met à jour toutes les dépendances

Options :
  • -u
  • -t

Ligne de commande :
go get -u github.com/gin-gonic/gin
Description :

Met à jour une dépendance spécifique

Options :
  • -u

Ligne de commande :
go get -d ./...
Description :

Télécharge les dépendances sans les installer

Options :
  • -d

Ligne de commande :
go install
Description :

Compile et installe un package

Options :
  • -v
  • -x
  • -race
  • -ldflags
  • -tags
  • -trimpath
  • -buildmode

Ligne de commande :
go install ./...
Description :

Installe tous les packages du module

Ligne de commande :
go install github.com/air-verse/air@latest
Description :

Installe un outil Go (air pour hot reload)

Options :
  • @latest
  • @version

Ligne de commande :
go build
Description :

Compile le package courant

Options :
  • -o
  • -v
  • -x
  • -race
  • -ldflags
  • -tags
  • -trimpath
  • -buildmode
  • -mod
  • -p
  • -work
  • -a
  • -n
  • -gcflags
  • -asmflags
  • -compiler
  • -installsuffix

Ligne de commande :
go build -o monapp
Description :

Compile avec un nom de sortie personnalisé

Options :
  • -o

Ligne de commande :
go build -o monapp ./cmd/api
Description :

Compile un package spécifique

Options :
  • -o

Ligne de commande :
go build -v ./...
Description :

Compile tous les packages avec logs verbeux

Options :
  • -v

Ligne de commande :
go build -race
Description :

Compile avec détection de race conditions

Options :
  • -race

Ligne de commande :
go build -ldflags="-s -w"
Description :

Compile en supprimant les symboles de debug (binaire plus petit)

Options :
  • -ldflags

Ligne de commande :
go build -ldflags="-X main.version=1.0.0"
Description :

Injection de variables lors de la compilation

Options :
  • -ldflags

Ligne de commande :
go build -tags prod
Description :

Compile avec des tags de build conditionnels

Options :
  • -tags

Ligne de commande :
go build -trimpath
Description :

Supprime les chemins absolus du binaire (build reproductible)

Options :
  • -trimpath

Ligne de commande :
GOOS=linux GOARCH=amd64 go build
Description :

Cross-compilation pour Linux 64-bit

Ligne de commande :
GOOS=windows GOARCH=amd64 go build -o monapp.exe
Description :

Cross-compilation pour Windows 64-bit

Options :
  • -o

Ligne de commande :
GOOS=darwin GOARCH=arm64 go build
Description :

Cross-compilation pour macOS Apple Silicon

Ligne de commande :
go run
Description :

Compile et exécute un programme Go

Options :
  • -race
  • -tags
  • -ldflags
  • -exec

Ligne de commande :
go run main.go
Description :

Exécute le fichier main.go

Ligne de commande :
go run ./cmd/api
Description :

Exécute le package api

Ligne de commande :
go run -race main.go
Description :

Exécute avec détection de race conditions

Options :
  • -race

Ligne de commande :
go test
Description :

Lance les tests du package courant

Options :
  • -v
  • -race
  • -cover
  • -coverprofile
  • -bench
  • -benchmem
  • -timeout
  • -short
  • -run
  • -count
  • -parallel
  • -cpu
  • -list
  • -json
  • -failfast
  • -shuffle

Ligne de commande :
go test ./...
Description :

Lance tous les tests du module

Options :
  • -v
  • -race
  • -cover

Ligne de commande :
go test -v
Description :

Lance les tests en mode verbeux

Options :
  • -v

Ligne de commande :
go test -race
Description :

Lance les tests avec détection de race conditions

Options :
  • -race

Ligne de commande :
go test -cover
Description :

Affiche le pourcentage de couverture de code

Options :
  • -cover

Ligne de commande :
go test -coverprofile=coverage.out
Description :

Génère un fichier de profil de couverture

Options :
  • -coverprofile

Ligne de commande :
go tool cover -html=coverage.out
Description :

Affiche la couverture dans le navigateur

Options :
  • -html
  • -func

Ligne de commande :
go tool cover -func=coverage.out
Description :

Affiche la couverture par fonction

Options :
  • -func

Ligne de commande :
go test -run TestNom
Description :

Lance un test spécifique par nom

Options :
  • -run

Ligne de commande :
go test -run TestUser/Create
Description :

Lance un sous-test spécifique

Options :
  • -run

Ligne de commande :
go test -bench=.
Description :

Lance tous les benchmarks

Options :
  • -bench
  • -benchmem
  • -benchtime
  • -count

Ligne de commande :
go test -bench=BenchmarkNom -benchmem
Description :

Lance un benchmark spécifique avec mémoire

Options :
  • -bench
  • -benchmem

Ligne de commande :
go test -timeout 30s
Description :

Définit un timeout pour les tests

Options :
  • -timeout

Ligne de commande :
go test -short
Description :

Ignore les tests longs

Options :
  • -short

Ligne de commande :
go test -count=1
Description :

Désactive le cache des tests

Options :
  • -count

Ligne de commande :
go test -shuffle=on
Description :

Exécute les tests dans un ordre aléatoire

Options :
  • -shuffle

Ligne de commande :
go test -json > report.json
Description :

Génère un rapport au format JSON

Options :
  • -json

Ligne de commande :
go fmt
Description :

Formate le code source Go

Options :
  • -n
  • -x
  • -mod

Ligne de commande :
go fmt ./...
Description :

Formate tous les fichiers du module

Ligne de commande :
go vet
Description :

Analyse statique du code pour détecter des erreurs

Options :
  • -all
  • -asmdecl
  • -assign
  • -atomic
  • -bool
  • -buildtag
  • -cgocall
  • -composites
  • -copylocks
  • -httpresponse
  • -loopclosure
  • -lostcancel
  • -nilfunc
  • -printf
  • -shift
  • -stdmethods
  • -structtag
  • -tests
  • -unmarshal
  • -unreachable
  • -unsafeptr
  • -unusedresult

Ligne de commande :
go vet ./...
Description :

Analyse tous les packages du module

Ligne de commande :
go clean
Description :

Nettoie les fichiers de build

Options :
  • -i
  • -r
  • -n
  • -x
  • -cache
  • -testcache
  • -modcache
  • -fuzzcache

Ligne de commande :
go clean -cache
Description :

Nettoie le cache de build Go

Options :
  • -cache

Ligne de commande :
go clean -testcache
Description :

Nettoie le cache des tests

Options :
  • -testcache

Ligne de commande :
go clean -modcache
Description :

Nettoie le cache des modules (dépendances)

Options :
  • -modcache

Ligne de commande :
go doc
Description :

Affiche la documentation d'un package

Options :
  • -all
  • -c
  • -cmd
  • -short
  • -src
  • -u

Ligne de commande :
go doc fmt
Description :

Affiche la documentation du package fmt

Options :
  • -all
  • -src

Ligne de commande :
go doc fmt.Println
Description :

Affiche la documentation de la fonction Println

Ligne de commande :
go list
Description :

Liste les packages

Options :
  • -f
  • -json
  • -m
  • -u
  • -versions
  • -deps
  • -test
  • -e
  • -find
  • -export

Ligne de commande :
go list ./...
Description :

Liste tous les packages du module

Ligne de commande :
go list -m all
Description :

Liste tous les modules dépendants

Options :
  • -m

Ligne de commande :
go list -m -u all
Description :

Liste les modules avec mises à jour disponibles

Options :
  • -m
  • -u

Ligne de commande :
go list -m -versions github.com/gin-gonic/gin
Description :

Liste les versions disponibles d'un module

Options :
  • -m
  • -versions

Ligne de commande :
go list -json
Description :

Affiche les informations en JSON

Options :
  • -json

Ligne de commande :
go work init
Description :

Initialise un workspace Go (go.work)

Options :
  • module1
  • module2

Ligne de commande :
go work use
Description :

Ajoute un module au workspace

Options :
  • -r
  • ./dir

Ligne de commande :
go work use ./module1 ./module2
Description :

Ajoute plusieurs modules au workspace

Ligne de commande :
go work sync
Description :

Synchronise le workspace avec go.mod

Ligne de commande :
go work edit
Description :

Édite go.work via ligne de commande

Options :
  • -fmt
  • -use
  • -dropuse
  • -replace
  • -dropreplace
  • -go

Ligne de commande :
go generate
Description :

Exécute les directives //go:generate

Options :
  • -n
  • -x
  • -v
  • -run

Ligne de commande :
go generate ./...
Description :

Exécute les générateurs pour tous les packages

Ligne de commande :
go tool
Description :

Exécute un outil Go

Options :
  • -n

Ligne de commande :
go tool compile
Description :

Compile un fichier Go (bas niveau)

Options :
  • -o
  • -I
  • -D
  • -S
  • -V

Ligne de commande :
go tool pprof
Description :

Analyse les profils de performance

Options :
  • -http
  • -web
  • -text
  • -tree
  • -peek
  • -list
  • -disasm
  • -callgrind
  • -dot
  • -svg
  • -png

Ligne de commande :
go tool pprof -http=:8080 profile.out
Description :

Lance l'interface web pprof

Options :
  • -http

Ligne de commande :
go tool trace trace.out
Description :

Analyse une trace d'exécution

Options :
  • -http

Ligne de commande :
go tool objdump
Description :

Désassemble un fichier objet

Options :
  • -s
  • -S

Ligne de commande :
go tool nm
Description :

Liste les symboles d'un fichier objet

Options :
  • -size
  • -sort
  • -type

Ligne de commande :
go test -fuzz=FuzzNom
Description :

Lance le fuzzing sur une fonction

Options :
  • -fuzz
  • -fuzztime
  • -fuzzminimizetime

Ligne de commande :
go test -fuzz=FuzzNom -fuzztime=30s
Description :

Lance le fuzzing pendant 30 secondes

Options :
  • -fuzz
  • -fuzztime

Ligne de commande :
go test -bench=. -benchmem -cpuprofile=cpu.out -memprofile=mem.out
Description :

Génère des profils CPU et mémoire

Options :
  • -cpuprofile
  • -memprofile
  • -blockprofile
  • -mutexprofile

Ligne de commande :
gofmt -w .
Description :

Formate tous les fichiers Go (commande alternative)

Options :
  • -w
  • -l
  • -d
  • -s
  • -r

Ligne de commande :
goimports -w .
Description :

Formate et organise les imports

Options :
  • -w
  • -l
  • -local

Ligne de commande :
go install golang.org/x/tools/cmd/goimports@latest
Description :

Installe goimports

Options :
  • @latest

Ligne de commande :
golint ./...
Description :

Linter Go (déprécié, utiliser staticcheck)

Options :
  • -set_exit_status
  • -min_confidence

Ligne de commande :
staticcheck ./...
Description :

Analyse statique avancée avec staticcheck

Options :
  • -checks
  • -fail
  • -explain
  • -show-ignored
  • -tags
  • -test

Ligne de commande :
go install honnef.co/go/tools/cmd/staticcheck@latest
Description :

Installe staticcheck

Options :
  • @latest

Ligne de commande :
golangci-lint run
Description :

Lance golangci-lint (agrège plusieurs linters)

Options :
  • --enable
  • --disable
  • --fast
  • --fix
  • --config
  • --tests
  • --skip-dirs
  • --timeout
  • --out-format
  • --new
  • --new-from-rev
  • --issues-exit-code
  • --max-issues-per-linter
  • --max-same-issues

Ligne de commande :
golangci-lint run --enable-all
Description :

Active tous les linters

Options :
  • --enable-all

Ligne de commande :
golangci-lint run --fix
Description :

Corrige automatiquement les problèmes

Options :
  • --fix

Ligne de commande :
air
Description :

Lance le hot reload avec Air

Options :
  • -c
  • --build.cmd
  • --build.bin
  • --build.delay
  • --build.exclude_dir
  • --build.include_ext
  • --log.level

Ligne de commande :
air init
Description :

Génère un fichier de configuration .air.toml

Ligne de commande :
go install github.com/air-verse/air@latest
Description :

Installe Air

Options :
  • @latest

Ligne de commande :
go run github.com/swaggo/swag/cmd/swag@latest init
Description :

Génère la documentation Swagger (Swaggo)

Options :
  • -g
  • --generalInfo
  • -d
  • --dir
  • -o
  • --output
  • --parseDependency
  • --parseInternal
  • --parseDepth
  • --instanceName
  • --overridesFile
  • --parseGoList

Ligne de commande :
swag init
Description :

Génère la documentation Swagger (si swag est installé)

Options :
  • -g
  • -d
  • -o
  • --pd
  • --pi
  • --pdl
  • --ot

Ligne de commande :
go install github.com/swaggo/swag/cmd/swag@latest
Description :

Installe Swag CLI

Options :
  • @latest

Ligne de commande :
mockgen -source=interface.go -destination=mocks/mock.go
Description :

Génère des mocks avec mockgen (gomock)

Options :
  • -source
  • -destination
  • -package
  • -aux_files
  • -build_flags
  • -copyright_file
  • -debug_parser
  • -imports
  • -mock_names
  • -self_package
  • -write_package_comment

Ligne de commande :
go install github.com/golang/mock/mockgen@latest
Description :

Installe mockgen

Options :
  • @latest

Ligne de commande :
go test -coverprofile=coverage.out && go tool cover -html=coverage.out -o coverage.html
Description :

Génère un rapport HTML de couverture

Ligne de commande :
go run github.com/onsi/ginkgo/v2/ginkgo
Description :

Lance les tests avec Ginkgo (BDD)

Options :
  • -r
  • --randomize-all
  • --randomize-suites
  • --keep-going
  • --until-it-fails
  • --repeat
  • --flake-attempts
  • --trace
  • --no-color
  • -v
  • --slow-spec-threshold
  • --dry-run
  • --label-filter
  • --focus
  • --skip
  • --timeout
  • --output-interceptor-mode

Ligne de commande :
ginkgo bootstrap
Description :

Initialise Ginkgo dans le projet

Ligne de commande :
ginkgo generate
Description :

Génère un fichier de test Ginkgo

Options :
  • -template

Ligne de commande :
go run github.com/go-task/task/v3/cmd/task
Description :

Exécute un Taskfile (alternative à Make)

Options :
  • -l
  • --list
  • -a
  • --list-all
  • -s
  • --summary
  • -t
  • --taskfile
  • -d
  • --dir
  • -c
  • --concurrency
  • -p
  • --parallel
  • -f
  • --force
  • -w
  • --watch
  • -v
  • --verbose
  • --dry-run
  • --exit-code
  • --silent
  • --output

Ligne de commande :
go install github.com/go-task/task/v3/cmd/task@latest
Description :

Installe Task

Options :
  • @latest

Ligne de commande :
go test -ldflags="-X github.com/user/project/version.Version=1.0.0"
Description :

Injecte une variable lors des tests

Options :
  • -ldflags

Ligne de commande :
go build -buildmode=plugin
Description :

Compile en plugin Go (Linux/macOS)

Options :
  • -buildmode

Ligne de commande :
go build -buildmode=c-shared
Description :

Compile en bibliothèque partagée C

Options :
  • -buildmode

Ligne de commande :
go build -buildmode=c-archive
Description :

Compile en archive C

Options :
  • -buildmode

Ligne de commande :
go env -w GOPROXY=https://proxy.golang.org,direct
Description :

Configure le proxy Go

Options :
  • -w

Ligne de commande :
go env -w GOPRIVATE=github.com/monentreprise/*
Description :

Configure les modules privés

Options :
  • -w

Ligne de commande :
go env -w GOSUMDB=off
Description :

Désactive la vérification de somme (non recommandé)

Options :
  • -w

Ligne de commande :
go env -w CGO_ENABLED=0
Description :

Désactive CGO (build statique)

Options :
  • -w

Ligne de commande :
go mod why -m github.com/gin-gonic/gin
Description :

Explique pourquoi un module est utilisé

Options :
  • -m

Ligne de commande :
go mod edit -go=1.21
Description :

Change la version Go dans go.mod

Options :
  • -go

Ligne de commande :
go mod edit -module=new/module/path
Description :

Change le chemin du module

Options :
  • -module

Ligne de commande :
go mod edit -retract=v1.0.0
Description :

Rétracte une version du module

Options :
  • -retract

Ligne de commande :
go mod edit -exclude=github.com/buggy/module@v1.2.3
Description :

Exclut une version spécifique

Options :
  • -exclude

Ligne de commande :
go mod edit -dropreplace=github.com/old/module
Description :

Supprime une directive replace

Options :
  • -dropreplace

Ligne de commande :
go mod download -json
Description :

Télécharge les modules avec sortie JSON

Options :
  • -json

Ligne de commande :
go list -m -json all
Description :

Affiche tous les modules en JSON

Options :
  • -m
  • -json

Ligne de commande :
go version -m monapp
Description :

Affiche les informations de build intégrées

Options :
  • -m

Ligne de commande :
go build -ldflags="-X main.buildTime=$(date -u +%Y-%m-%dT%H:%M:%SZ)"
Description :

Injecte la date de build

Options :
  • -ldflags

Ligne de commande :
go build -ldflags="-X main.gitCommit=$(git rev-parse HEAD)"
Description :

Injecte le hash Git

Options :
  • -ldflags

Ligne de commande :
go test -c
Description :

Compile le binaire de test sans l'exécuter

Options :
  • -c
  • -o

Ligne de commande :
go test -o test.binary -c
Description :

Compile le binaire de test avec nom personnalisé

Options :
  • -o
  • -c

Ligne de commande :
go test -exec=wine -v ./...
Description :

Exécute les tests avec un émulateur (ex: Wine)

Options :
  • -exec

Ligne de commande :
go test -vet=off
Description :

Désactive go vet pendant les tests

Options :
  • -vet

Ligne de commande :
go test -parallel=4
Description :

Exécute jusqu'à 4 tests en parallèle

Options :
  • -parallel

Ligne de commande :
go test -failfast
Description :

Arrête les tests au premier échec

Options :
  • -failfast

Ligne de commande :
go test -args -custom-flag=value
Description :

Passe des arguments personnalisés aux tests

Options :
  • -args

Ligne de commande :
go get -t -u ./...
Description :

Met à jour toutes les dépendances, y compris celles de test

Options :
  • -t
  • -u

Ligne de commande :
go mod vendor -v
Description :

Vendore les dépendances avec logs

Options :
  • -v

Ligne de commande :
go work edit -go=1.21
Description :

Change la version Go dans go.work

Options :
  • -go

Ligne de commande :
go work edit -dropuse=./module1
Description :

Retire un module du workspace

Options :
  • -dropuse

Ligne de commande :
go work edit -replace=old@v1.0.0=new@v1.1.0
Description :

Ajoute un replace dans le workspace

Options :
  • -replace

Ligne de commande :
go work use -r ./...
Description :

Ajoute récursivement tous les modules

Options :
  • -r

Ligne de commande :
go work sync -v
Description :

Synchronise le workspace avec logs

Options :
  • -v

Ligne de commande :
go doc -all
Description :

Affiche toute la documentation d'un package

Options :
  • -all