Go update all modules

Using this module as an example (using a specific commit so others will see what I see):

git clone git://github.com/walles/moar
Set-Location moar
git checkout d24acdbf

I would like a way to tell Go to “update everything”. Assume that the module will work with the newest version of everything. Below are five ways I found to do this, assume each is run on a clean clone. This results in a go.mod of 19 lines:

go get -u

This results in a go.mod of 14 lines:

go get -u
go mod tidy

This results in a go.mod of 13 lines:

go mod tidy

If I just manually delete everything in require and run go mod tidy, I get 12 lines. If I just manually delete everything in require and run go get -u, I get 11 lines. My question is, why are these methods producing different results, and what is the “right way” to do what I am trying to do?

go version go1.16.3 windows/amd64