# test go get -tool go get -tool example.com/tools/cmd/hello@v1.0.0 cmp go.mod go.mod.want go get -u tool cmp go.mod go.mod.upgraded # test -tool with @none go get -tool example.com/tools/cmd/hello@none cmp go.mod go.mod.gone go mod tidy cmp go.mod go.mod.empty # test -tool with wildcards go get -tool ./cmd/... cmp go.mod go.mod.wildcard ! go get -tool ./cmd/...@none stderr 'can''t request explicit version "none" of path "./cmd/..." in main module' # test -tool with all ! go get -tool all stderr 'go get -tool does not work with "all"' # test tool@none ! go get tool@none stderr 'can''t request explicit version of "tool" pattern' -- main.go -- package main func main() {} -- go.mod -- module example.com/foo go 1.24 -- go.mod.want -- module example.com/foo go 1.24 tool example.com/tools/cmd/hello require example.com/tools v1.0.0 // indirect -- go.mod.upgraded -- module example.com/foo go 1.24 tool example.com/tools/cmd/hello require example.com/tools v1.1.0 // indirect -- go.mod.gone -- module example.com/foo go 1.24 require example.com/tools v1.1.0 // indirect -- go.mod.empty -- module example.com/foo go 1.24 -- go.mod.wildcard -- module example.com/foo go 1.24 tool ( example.com/foo/cmd/a example.com/foo/cmd/b ) -- cmd/a/a.go -- package a func main() {} -- cmd/b/b.go -- package b func main() {}