Pre Go 1.11, adding a dependency meant cloning that dependency's source code repo in your GOPATH. The idea behind the first version of go's package management was - no need for module versioning, no need for 3rd-party module repositories, you build everything from your current branch. Go get by default didn't support module versioning. Let's break down on what's wrong with 'pre - go module' package management tooling. Go's implementation of package management traces its origins back to Google (which has a giant monolithic repository for all their source code). 'I use go get for production builds.' - said no one ever. The community has developed package managers and tools like Glide, dep and many others serving as de-facto solutions for versioning dependencies.
One of the major drawbacks of the previous (pre 1.11) go get was lack of support for managing dependency versions and enabling reproducible builds. Package management is one of the things Go has always missed.