title: Go update all modules
body: <p>Using this module as an example (using a specific commit so others will see
  what I see):</p>
  <pre><code>git clone git://github.com/walles/moar
  Set-Location moar
  git checkout d24acdbf
  </code></pre>
  <p>I would like a way to tell Go to &quot;update everything&quot;. 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 <code>go.mod</code> of 19
  lines:</p>
  <pre><code>go get -u
  </code></pre>
  <p>This results in a <code>go.mod</code> of 14 lines:</p>
  <pre><code>go get -u
  go mod tidy
  </code></pre>
  <p>This results in a <code>go.mod</code> of 13 lines:</p>
  <pre><code>go mod tidy
  </code></pre>
  <p>If I just manually delete everything in <code>require</code> and run <code>go mod tidy</code>, I get
  12 lines. If I just manually delete everything in <code>require</code> and run <code>go get -u</code>, I get 11 lines. My question is, why are these methods producing different
  results, and what is the &quot;right way&quot; to do what I am trying to do?</p>