Go generate is not needed in your example. Go build is what is producing the hello executable.
Go generate is used to run special commands specified by comments in the .go files - these commands could produce new .go files, package binaries into binhex or base64 encoded strings in .go files for inclusion in the executable, produce inter-process communication interface descriptions from go structs, embedding version numbers without having to remember to set -ldflags, automating the collection of API information from the internet, etc.
When it is run and there are no .go files containing generate commands, it is doing nothing but scanning the files and exiting. In general, pretty much anything you 'go get' should have included any generated files in the downloaded data, so running it again is usually not needed, unless the README indicates that it is.
Howard