title: What's the difference between "git fetch <url>" and "git add remote upstream <url>" followed by "git fetch upstream"?
body: <p>I was trying to pull changes from upstream into my fork. I tried <code>git fetch https://github.com/someuser/someproject</code>, but it stubbornly refused to do anything. It just said something totally cryptic and did nothing, namely:</p>
  
  <pre><code>From https://github.com/someuser/someproject
   * branch            HEAD       -&gt; FETCH_HEAD
  </code></pre>
  
  <p>But the moment I added the URL as a named remote, things changed:</p>
  
  <pre><code>&gt; git remote add upstream https://github.com/someuser/someproject.git
  &gt; git fetch upstream
  remote: Counting objects: 340, done.
  remote: Compressing objects: 100% (268/268), done.
  remote: Total 340 (delta 145), reused 18 (delta 16), pack-reused 44
  ... etc ...
  </code></pre>
  
  <p>So what's the difference? Why did it do nothing when I specified a remote without adding it first? And what exactly was it telling me when I tried to fetch from the URL?</p>