Comandos comuns
Gerenciamento de Dependências
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
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 minor e patch disponíveis 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 JSON (Go 1.25+)go 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
go mod verify— Verifica as dependências não foram modificadas desde o downloadgo mod download— Baixa módulos para o cache local sem adicioná-los aogo.modgo mod download -json <module>— Baixa e retorna informações em JSON
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+)
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$GOPATH/bin(Go 1.16+)
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
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+)
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 -http :8080— Inicia um servidor de documentação local (Go 1.25+)
Padrões de pacotes úteis
./...— Todos os pacotes no módulo atual e subdiretóriosall— Todos os pacotes em todos os módulos da build list (Go 1.16+: mudou comportamento)work— Todos os pacotes nos módulos do workspace (Go 1.25+)std— Todos os pacotes da biblioteca padrão
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
-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 em vários comandos desde Go 1.24+)-modcacherw— Deixa arquivos do cache de módulos com permissão de escrita-modfile=<arquivo>— Usa um arquivo go.mod alternativo
Exemplos práticos
Adicionar uma dependência
# Adiciona a versão mais recente
go get github.com/gin-gonic/gin@latest
# Atualiza go.mod e go.sum
go mod tidyAtualizar todas as dependências
# Ver atualizações disponíveis
go list -u -m all
# Atualizar todas para versões minor/patch
go get -u ./...
# Limpar dependências não utilizadas
go mod tidyTrabalhar com múltiplos módulos localmente
# Criar um workspace
go work init ./module1 ./module2
# Adicionar um módulo ao workspace
go work use ./module3
# Build usando o workspace
go build ./...Usar um fork ou versão local de uma dependência
# Via linha de comando
go mod edit -replace github.com/original/repo=github.com/myfork/repo@v1.2.3
# Ou para desenvolvimento local
go mod edit -replace github.com/original/repo=../path/to/local/repo
# Não esqueça de rodar
go mod tidyVerificar integridade das dependências
# Verifica checksums
go mod verify
# Baixa e verifica todas as dependências
go mod download
go mod verifyRecursos adicionais
Last updated