title: git diff between remote and local (ignoring non-pushed commits)
body: <p>I'm looking to see the best way to see changes on a given remote branch after a <code>git fetch</code>, but I want to ignore the changes I've committed (but not pushed/merged).  Generally, my flow is</p>
  
  <pre><code> git commit
   git commit # something else
   git fetch
   git diff HEAD^^..origin/stable # HEAD^^ is the commit right before my two commits above
  </code></pre>
  
  <p>Wanted to see if there was a way to handle that HEAD^^ to show me what has changed between what I knew of origin/stable (in this case, HEAD^^) and what origin/stable is after the fetch.</p>
  
  <p>Basically, I want to see all new code committed to the branch since my last fetch, ignoring any staged (or unstaged) changes I have on my local branch.</p>
  
  <p>Thanks for the help.</p>
  
  <h2>Solution</h2>
  
  <p>Based on @carl-norum's answer below, I added the following to .git/config</p>
  
  <pre><code> [alias]
      fetch-diff = !git fetch 2&gt;&amp;1 | awk '/[a-z0-9]+[.][.][a-z0-9]+/ { print $1 }' | xargs -L 1 git diff
  </code></pre>
  
  <p>and now use <code>git fetch-diff</code> which will fetch and print the diffs for each branch.</p>