La page de manuel de git-config liste ces options pour push.default :
nothing - do not push anything.
matching - push all matching branches. All branches having the same name in both ends are considered to be matching. This is the default.
upstream - push the current branch to its upstream branch.
tracking - deprecated synonym for upstream.
current - push the current branch to a branch of the same name.
Dans la plupart des cas, je supposerais que pousser vers la branche amont d'une branche serait la même chose que pousser vers une branche du même nom, puisque la branche amont aurait normalement le même nom, et puisque la branche du même nom ("courante") serait normalement (ou toujours, par définition ?) en amont. Alors quelle est la différence ?
UPDATE : La page de manuel de git-config a été mis à jour (comme on pouvait s'y attendre), donc les distinctions faites là peut être beaucoup plus clair maintenant.