title: Git Push Questions - Pedantic
body: <p>I have a master branch and a searchfeature branch in my project. I have pushed the searchfeature branch to the remote repository, all okay so far</p>
  
  <p>When I was working on that branch this morning, I did "git push" I got the following:</p>
  
  <pre><code>warning: You did not specify any refspecs to push, and the current remote
  warning: has not configured any push refspecs. The default action in this
  warning: case is to push all matching refspecs, that is, all branches
  warning: that exist both locally and remotely will be updated.  This may
  warning: not necessarily be what you want to happen.
  warning: 
  warning: You can specify what action you want to take in this case, and
  warning: avoid seeing this message again, by configuring 'push.default' to:
  warning:   'nothing'  : Do not push anything
  warning:   'matching' : Push all matching branches (default)
  warning:   'tracking' : Push the current branch to whatever it is tracking
  warning:   'current'  : Push the current branch
  </code></pre>
  
  <p>So I went ahead a did a git config push.default tracking and voila, git push works this no problem, no warning. </p>
  
  <p>What I dont understand is what the difference between "current" and "tracking" is, if you don't do "to whatever it is tracking" then what is the point of "current" - where would it go?, what scenarios would you use current rather than tracking?</p>
  
  <p>Also, what scenarios would one ever use "nothing"?</p>