La pagina man di git-config elenca queste opzioni per 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.
Nella maggior parte dei casi presumo che spingere al ramo a monte di un ramo sarebbe lo stesso che spingere a un ramo con lo stesso nome, poiché il ramo a monte normalmente avrebbe lo stesso nome e poiché il ramo con lo stesso nome ("corrente" ) sarebbe normalmente (o sempre, per definizione?) essere a monte. Allora qual è la differenza?
UPDATE : La pagina man per git-config è stato aggiornato (come ci si aspetterebbe), quindi le distinzioni fatte ci può essere molto più chiaro ora.