Avatar ·

É necessário commitar o arquivo go.sum no repositório Git?

Olá! Comecei a estudar Go e estou migrando do uso de GOPATH para Go Modules. Tenho um projeto que usa várias dependências externas. Inicializei o módulo com o comando `go mod init` e adicionei dependências via `go get`. Como resultado, surgiram dois arquivos: `go.mod` e `go.sum`. Eu entendo que `go.mod` precisa ser commitado — é como `package.json` ou `requirements.txt`. Mas com `go.sum` não é tão óbvio. Vejo que é um arquivo enorme com hashes, que muda constantemente. Por exemplo, atualmente no meu projeto tenho a dependência `github.com/gin-gonic/gin v1.9.1`, e `go.sum` contém dezenas de linhas com hashes para essa e outras bibliotecas. Meu tech lead diz que `go.sum` precisa ser commitado para garantir a reprodutibilidade das builds. Mas li que alguns desenvolvedores não o commitam porque é grande e pode ser regenerado. Além disso, em alguns pipelines de CI/CD vi que eles executam `go mod download` e tudo funciona. Por favor, me digam qual é a abordagem correta?