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
When I was working on that branch this morning, I did "git push" I got the following:
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
So I went ahead a did a git config push.default tracking and voila, git push works this no problem, no warning.
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?
Also, what scenarios would one ever use "nothing"?
 
    