title: git trying to push non-existent file ... after clearing cache
body: <p>I have a number of shapefiles in my repo that were too large, thereby causing my push to GitHub to fail.  I initially tried to create a <code>.gitignore</code> file that excludes most of the extensions in shapefile bundles.  It still tried to push the shapefiles.  After some searching, I found I had to clear the cache:</p>
  
  <pre><code>git rm -rf --cached .
  git add .
  </code></pre>
  
  <p>However, once I tried to commit and then push again, I found that this did not fix the problem.  The same shapefile was hanging things up.  After much messing around, I abandoned the idea and decided to move all the shapefiles out of the repo.  I cleared the cache again, added back, committed, and attempted to push to GitHub.  </p>
  
  <p>The push failed.  The shapefile (which is no longer in the repo) was too large for a push.  How can that happen?  I feel like files that are not in the commit, because they aren't in the repo, should not be able to hang up the push.  Any thoughts on what is happening here would be most appreciated.</p>
  
  <p><strong>UPDATE</strong>: Current status of rebase options...</p>
  
  <pre><code>noop
  
  # Rebase 133c6ec..133c6ec onto 133c6ec
  #
  # Commands:
  #  p, pick = use commit
  #  r, reword = use commit, but edit the commit message
  #  e, edit = use commit, but stop for amending
  #  s, squash = use commit, but meld into previous commit
  #  f, fixup = like "squash", but discard this commit's log message
  #  x, exec = run command (the rest of the line) using shell
  #
  # These lines can be re-ordered; they are executed from top to bottom.
  #
  # If you remove a line here THAT COMMIT WILL BE LOST.
  #
  # However, if you remove everything, the rebase will be aborted.
  #
  # Note that empty commits are commented out
  </code></pre>
  
  <p><strong>UPDATE:</strong> Reflog >> it all starts with 'Adding many images'</p>
  
  <pre><code>133c6ec HEAD@{0}: rebase -i (finish): returning to refs/heads/master
  133c6ec HEAD@{1}: rebase -i (start): checkout refs/remotes/origin/master
  133c6ec HEAD@{2}: rebase -i (finish): returning to refs/heads/master
  133c6ec HEAD@{3}: rebase -i (start): checkout refs/remotes/origin/master
  133c6ec HEAD@{4}: rebase -i (finish): returning to refs/heads/master
  133c6ec HEAD@{5}: rebase -i (start): checkout refs/remotes/origin/master
  133c6ec HEAD@{6}: rebase -i (finish): returning to refs/heads/master
  133c6ec HEAD@{7}: rebase -i (pick): still dealing with shp bs
  0f81c71 HEAD@{8}: rebase -i (pick): Removing shapefiles
  91cb472 HEAD@{9}: rebase -i (pick): Adding comments from Mullins consult - throu
  83c1269 HEAD@{10}: rebase -i (pick): Adding comments from Mullins consult - thro
  7677b3f HEAD@{11}: rebase -i (pick): Hopefully .gitignore is now working
  97aa005 HEAD@{12}: rebase -i (pick): Adjusting gitignore
  9e912cb HEAD@{13}: rebase -i (pick): Adjusting gitignore
  06647c0 HEAD@{14}: rebase -i (squash): Adding many images
  259d73b HEAD@{15}: rebase -i (squash): # This is a combination of 2 commits.
  3b2d5e8 HEAD@{16}: rebase -i (start): checkout refs/remotes/origin/master
  a585f1d HEAD@{17}: rebase: aborting
  7bc98a4 HEAD@{18}: rebase -i (start): checkout refs/remotes/origin/master
  a585f1d HEAD@{19}: rebase -i (finish): returning to refs/heads/master
  a585f1d HEAD@{20}: rebase -i (start): checkout 9f28970
  a585f1d HEAD@{21}: rebase -i (finish): returning to refs/heads/master
  a585f1d HEAD@{22}: rebase -i (start): checkout refs/remotes/origin/master
  :...skipping...
  133c6ec HEAD@{0}: rebase -i (finish): returning to refs/heads/master
  133c6ec HEAD@{1}: rebase -i (start): checkout refs/remotes/origin/master
  133c6ec HEAD@{2}: rebase -i (finish): returning to refs/heads/master
  133c6ec HEAD@{3}: rebase -i (start): checkout refs/remotes/origin/master
  133c6ec HEAD@{4}: rebase -i (finish): returning to refs/heads/master
  133c6ec HEAD@{5}: rebase -i (start): checkout refs/remotes/origin/master
  133c6ec HEAD@{6}: rebase -i (finish): returning to refs/heads/master
  133c6ec HEAD@{7}: rebase -i (pick): still dealing with shp bs
  0f81c71 HEAD@{8}: rebase -i (pick): Removing shapefiles
  91cb472 HEAD@{9}: rebase -i (pick): Adding comments from Mullins consult - throu
  83c1269 HEAD@{10}: rebase -i (pick): Adding comments from Mullins consult - thro
  7677b3f HEAD@{11}: rebase -i (pick): Hopefully .gitignore is now working
  97aa005 HEAD@{12}: rebase -i (pick): Adjusting gitignore
  9e912cb HEAD@{13}: rebase -i (pick): Adjusting gitignore
  06647c0 HEAD@{14}: rebase -i (squash): Adding many images
  259d73b HEAD@{15}: rebase -i (squash): # This is a combination of 2 commits.
  3b2d5e8 HEAD@{16}: rebase -i (start): checkout refs/remotes/origin/master
  a585f1d HEAD@{17}: rebase: aborting
  7bc98a4 HEAD@{18}: rebase -i (start): checkout refs/remotes/origin/master
  a585f1d HEAD@{19}: rebase -i (finish): returning to refs/heads/master
  a585f1d HEAD@{20}: rebase -i (start): checkout 9f28970
  a585f1d HEAD@{21}: rebase -i (finish): returning to refs/heads/master
  a585f1d HEAD@{22}: rebase -i (start): checkout refs/remotes/origin/master
  a585f1d HEAD@{23}: rebase: aborting
  :...skipping...
  133c6ec HEAD@{0}: rebase -i (finish): returning to refs/heads/master
  133c6ec HEAD@{1}: rebase -i (start): checkout refs/remotes/origin/master
  133c6ec HEAD@{2}: rebase -i (finish): returning to refs/heads/master
  133c6ec HEAD@{3}: rebase -i (start): checkout refs/remotes/origin/master
  133c6ec HEAD@{4}: rebase -i (finish): returning to refs/heads/master
  133c6ec HEAD@{5}: rebase -i (start): checkout refs/remotes/origin/master
  133c6ec HEAD@{6}: rebase -i (finish): returning to refs/heads/master
  133c6ec HEAD@{7}: rebase -i (pick): still dealing with shp bs
  0f81c71 HEAD@{8}: rebase -i (pick): Removing shapefiles
  91cb472 HEAD@{9}: rebase -i (pick): Adding comments from Mullins consult - through rev chapter
  83c1269 HEAD@{10}: rebase -i (pick): Adding comments from Mullins consult - through rev chapter
  7677b3f HEAD@{11}: rebase -i (pick): Hopefully .gitignore is now working
  97aa005 HEAD@{12}: rebase -i (pick): Adjusting gitignore
  9e912cb HEAD@{13}: rebase -i (pick): Adjusting gitignore
  06647c0 HEAD@{14}: rebase -i (squash): Adding many images
  259d73b HEAD@{15}: rebase -i (squash): # This is a combination of 2 commits.
  3b2d5e8 HEAD@{16}: rebase -i (start): checkout refs/remotes/origin/master
  a585f1d HEAD@{17}: rebase: aborting
  7bc98a4 HEAD@{18}: rebase -i (start): checkout refs/remotes/origin/master
  a585f1d HEAD@{19}: rebase -i (finish): returning to refs/heads/master
  a585f1d HEAD@{20}: rebase -i (start): checkout 9f28970
  a585f1d HEAD@{21}: rebase -i (finish): returning to refs/heads/master
  a585f1d HEAD@{22}: rebase -i (start): checkout refs/remotes/origin/master
  a585f1d HEAD@{23}: rebase: aborting
  eaadebf HEAD@{24}: rebase -i (pick): Adding comments from Mullins consult - through rev chapter
  7bc98a4 HEAD@{25}: rebase -i (start): checkout refs/remotes/origin/master
  a585f1d HEAD@{26}: commit: still dealing with shp bs
  4bef02c HEAD@{27}: commit: Removing shapefiles
  cc061ac HEAD@{28}: commit: Adding comments from Mullins consult - through rev chapter
  21c5ab7 HEAD@{29}: commit: Adding comments from Mullins consult - through rev chapter
  9f28970 HEAD@{30}: commit: Hopefully .gitignore is now working
  a2bdbae HEAD@{31}: commit: Adjusting gitignore
  c3e5128 HEAD@{32}: commit: Adjusting gitignore
  8f8b96e HEAD@{33}: commit: Adding gitignore to avoid tracking shapefiles
  0c14e14 HEAD@{34}: commit: Adding gitignore to avoid tracking shapefiles
  3b2d5e8 HEAD@{35}: commit: Adding many images
  </code></pre>