title: Why does `git push -f` force push ALL of the tracking branches?
body: <p>Git version: 1.7.12.3</p>
  
  <p>As the question states, that seems like a really bad idea to me. Without any additional flags or confirmations <code>git push -f</code> will force push all of the tracking branches to remote.</p>
  
  <p>If a developer has a few outdated branches, that are tracking remotes, and he executes that command, all of the tracking branches will have been rolled back to his outdated copies, which causes loss of valuable work.</p>
  
  <p>This can be done accidentally, or by someone not very experienced with git. It really seems like git should do a little more hand-holding in such a dangerous case, and require an additional flag, or ask for a confirmation.</p>
  
  <p>Is there a remedy for this?</p>