Comandos comuns
Gerenciamento de Dependências
Seção intitulada “Gerenciamento de Dependências”Comandos Básicos
Seção intitulada “Comandos Básicos”go mod init <module-path>— Inicializa um novo módulo no diretório atualgo mod tidy— Adiciona dependências faltantes e remove dependências não utilizadas dogo.modego.sumgo get <module>@<version>— Adiciona, atualiza ou remove uma dependênciago get foo@v1.2.3— Versão específicago get foo@latest— Última versão estávelgo get foo@none— Remove a dependência (Go 1.17+)go get -u foo— Atualiza para a versão minor ou patch mais recentego get -u ./...— Atualiza todas as dependências diretas e indiretas
Visualização e Inspeção
Seção intitulada “Visualização e Inspeção”go list -m all— Lista todos os módulos que são dependências do projeto atualgo list -u -m all— Ver as atualizações disponíveis no mesmo caminho de módulo para todas as dependências diretas ou indiretasgo list -m -versions <module>— Lista todas as versões disponíveis de um módulogo list -m -json all— Exporta informações de módulos em formato JSONgo mod graph— Imprime o gráfico de dependências do módulogo mod why -m <module>— Explica por que um módulo é necessário
Verificação e Download
Seção intitulada “Verificação e Download”go mod verify— Verifica as dependências não foram modificadas desde o downloadgo mod download— Baixa módulos para o cache local; não substituigo getpara registrar uma nova dependênciago mod download -json <module>— Baixa e retorna informações em JSON
Workspace Mode (Go 1.18+)
Seção intitulada “Workspace Mode (Go 1.18+)”go work init <módulos...>— Inicializa um novo workspace com múltiplos módulosgo work use <diretório>— Adiciona um módulo ao workspacego work use -r .— Adiciona recursivamente todos os módulos encontrados no diretório atualgo work edit— Edita o arquivo go.workgo work sync— Sincroniza as dependências do workspace com os módulosgo work vendor— Cria o diretório vendor a partir do workspace (Go 1.22+)go test work— Testa todos os pacotes dos módulos do workspace (Go 1.25+)
Build e Teste
Seção intitulada “Build e Teste”go build ./...— Build de todos os pacotes no módulo (a partir do diretório raiz)go test ./...— Executa testes de todos os pacotes no módulogo build -o <output> <pacote>— Build com nome de saída específicogo install <pacote>@<versão>— Instala um programa em$GOBIN, ou em$GOPATH/binquandoGOBINnão está definido (Go 1.16+)
Versões do Go e ferramentas
Seção intitulada “Versões do Go e ferramentas”go get go@1.27.0— Define Go 1.27.0 como versão mínima do módulogo get toolchain@go1.27.1— Sugere Go 1.27.1 para trabalhar no módulo; versões mais novas continuam permitidasGOTOOLCHAIN=go1.27.1 go test ./...— Executa os testes com esse toolchain específicogo get -tool <pacote>@<versão>— Registra uma ferramenta no módulo (Go 1.24+)go tool <nome>— Executa uma ferramenta registradago list tool— Lista os pacotes das ferramentas registradasgo get tool— Atualiza as ferramentas registradas
Vendoring
Seção intitulada “Vendoring”go mod vendor— Cria o diretóriovendorcom as dependênciasgo build -mod=vendor— Força o build a usar o diretório vendorgo mod vendor -e— Continua mesmo se houver erros
Limpeza e Manutenção
Seção intitulada “Limpeza e Manutenção”go clean -modcache— Limpa o cache de módulos ($GOPATH/pkg/mod)go mod edit -require=<module>@<versão>— Edita ogo.modsem baixar o módulogo mod edit -replace=<old>=<new>— Adiciona uma diretiva replacego mod edit -dropreplace=<old>— Remove uma diretiva replacego mod edit -exclude=<module>@<versão>— Exclui uma versão específica de um módulogo mod edit -retract=<versão>— Retrai uma versão publicada (Go 1.16+)go mod tidy -diff— Mostra as mudanças necessárias sem editargo.modego.sum; retorna status diferente de zero quando há diferenças (Go 1.23+)
Com go 1.27 ou superior no go.mod, o go mod tidy também reúne os requisitos em até dois blocos: dependências diretas e indiretas.
Documentação
Seção intitulada “Documentação”go doc <pacote>— Mostra a documentação de um pacotego doc <pacote>.<symbol>— Mostra documentação de um símbolo específicogo doc <pacote>@<versão> <símbolo>— Consulta uma versão específica sem alterar as dependências do projeto (Go 1.27+)
Padrões de pacotes úteis
Seção intitulada “Padrões de pacotes úteis”./...— Todos os pacotes no módulo atual e subdiretóriosall— Pacotes do módulo principal e suas dependências, incluindo as usadas pelos testes do módulo (para módulos comgo 1.16ou superior)work— Todos os pacotes nos módulos do workspace, ou no módulo principal quando não há workspace (Go 1.25+)std— Todos os pacotes da biblioteca padrão
Variáveis de ambiente importantes
Seção intitulada “Variáveis de ambiente importantes”GOPROXY— URL do proxy de módulos (padrão:https://proxy.golang.org,direct)GOPRIVATE— Padrão de módulos privados (não usar proxy nem checksum database)GOSUMDB— Servidor do checksum database (padrão:sum.golang.org)GOMODCACHE— Localização do cache de módulos (padrão:$GOPATH/pkg/mod)GOVCS— Controla quais sistemas de controle de versão o Go pode usar (Go 1.16+)GOAUTH— Configuração de autenticação para módulos privados (Go 1.24+)GOTOOLCHAIN— Controla seleção automática de toolchain (Go 1.21+)
Flags úteis
Seção intitulada “Flags úteis”-mod=readonly— Não permite modificações nogo.mod-mod=vendor— Usa o diretório vendor ao invés de baixar dependências-mod=mod— Permite modificações nogo.mod(comportamento padrão pré-1.16)-json— Saída em formato JSON; disponível emgo builddesde Go 1.24 e há mais tempo emgo listego test-modcacherw— Deixa arquivos do cache de módulos com permissão de escrita-modfile=<arquivo>— Usa um arquivo go.mod alternativo
Exemplos práticos
Seção intitulada “Exemplos práticos”Adicionar uma dependência
Seção intitulada “Adicionar uma dependência”# Adiciona a versão mais recentego get github.com/gin-gonic/gin@latest
# Atualiza go.mod e go.sumgo mod tidyAtualizar todas as dependências
Seção intitulada “Atualizar todas as dependências”# Ver atualizações disponíveisgo list -u -m all
# Atualizar todas para versões minor/patchgo get -u ./...
# Limpar dependências não utilizadasgo mod tidyTrabalhar com múltiplos módulos localmente
Seção intitulada “Trabalhar com múltiplos módulos localmente”# Criar um workspacego work init ./module1 ./module2
# Adicionar um módulo ao workspacego work use ./module3
# Build de todos os módulos do workspace (Go 1.25+)go build workUsar um fork ou versão local de uma dependência
Seção intitulada “Usar um fork ou versão local de uma dependência”# Via linha de comandogo mod edit -replace github.com/original/repo=github.com/myfork/repo@v1.2.3
# Ou para desenvolvimento localgo mod edit -replace github.com/original/repo=../path/to/local/repo
# Não esqueça de rodargo mod tidyVerificar integridade das dependências
Seção intitulada “Verificar integridade das dependências”# Verifica checksumsgo mod verify
# Baixa e verifica todas as dependênciasgo mod downloadgo mod verify