title: in case of working within a branch, why does git push need additional arguments?
body: <p>I did</p>
  
  <pre><code>git checkout -b NEW_BRANCH
  </code></pre>
  
  <p>Everywhere it is being mentioned, that in order to push this to the remote, one has either to tell the push command some additional information</p>
  
  <pre><code>git push origin NEW_BRANCH
  </code></pre>
  
  <p>, or one has to associate the local branch with a remote branch</p>
  
  <pre><code>git branch --set-upstream origin NEW_BRANCH
  </code></pre>
  
  <p>I don't understand the need for either. In other words, I don't understand the effects of the additional commands? What are they? Or what would happen, if one just says </p>
  
  <p>git push</p>
  
  <p>?
  In either of the above commands, does NEW_BRANCH refer to the local branch name or to the remote branch name (if there is a difference)?</p>