Come SCM distribuito, git distingue tra i concetti "crea un'istantanea della copia di lavoro" (commit) e "repository di sincronizzazione" (push / pull / fetch).
Se hai sempre un solo clone locale del tuo repository, allora non ha senso spingere. Tuttavia, con github, tu fai hai un altro clone (quello su github), e spingendo le tue modifiche c'è almeno un vantaggio: il backup. Se il tuo computer muore, hai ancora tutto spinto finora su github.
Naturalmente, questo non è lo scopo principale di Github; github è inteso per la condivisione del codice, quindi se il tuo progetto è su github, puoi consentire ad altri di tirare da lì, clonare il tuo progetto, agire sulle richieste di pull dai loro cloni o persino dare ad altri di fiducia l'accesso al tuo repository.
Un altro motivo per spingere è se usi diversi cloni locali. Questo può essere utile per varie cose: ad esempio, potresti voler lavorare su due rami diversi allo stesso tempo, oppure potresti voler provare eventuali operazioni distruttive sul tuo repository; se tutto funziona come previsto, si mantiene il clone modificato (o si spinge le modifiche al repository originale), ma se le cose vanno a sud, è sufficiente eliminare il clone incasinato e tornare a quello originale (che è ancora invariato) .
Alcune persone usano anche git per la distribuzione: la versione di produzione è anche un repo git, e l'aggiornamento a una versione più recente è una questione di recupero e estrazione (ovviamente, funziona solo se non è necessario un passo di costruzione). Non lo consiglierei necessariamente per cose serie, ma per le piccole cose è una soluzione semplice e pragmatica.