title: Why do I need to do `--set-upstream` all the time?
body: <p>I create a new branch in Git:</p>
  
  <pre><code>git branch my_branch
  </code></pre>
  
  <p>Push it:</p>
  
  <pre><code>git push origin my_branch
  </code></pre>
  
  <p>Now say someone made some changes on the server and I want to pull from <code>origin/my_branch</code>. I do:</p>
  
  <pre><code>git pull
  </code></pre>
  
  <p>But I get:</p>
  
  <pre><code>You asked me to pull without telling me which branch you
  want to merge with, and 'branch.my_branch.merge' in
  your configuration file does not tell me, either. Please
  specify which branch you want to use on the command line and
  try again (e.g. 'git pull &lt;repository&gt; &lt;refspec&gt;').
  See git-pull(1) for details.
  
  If you often merge with the same branch, you may want to
  use something like the following in your configuration file:
  
      [branch "my_branch"]
      remote = &lt;nickname&gt;
      merge = &lt;remote-ref&gt;
  
      [remote "&lt;nickname&gt;"]
      url = &lt;url&gt;
      fetch = &lt;refspec&gt;
  
  See git-config(1) for details.
  </code></pre>
  
  <p>I learned that I can make it work with:</p>
  
  <pre><code>git branch --set-upstream my_branch origin/my_branch
  </code></pre>
  
  <p>But why do I need to do this for every branch I create? Isn't it obvious that if I push <code>my_branch</code> into <code>origin/my_branch</code>, then I would want to pull <code>origin/my_branch</code> into <code>my_branch</code>? How can I make this the default behavior?</p>