Come SCM distribuito, git distingue tra i concetti "crea un'istantanea della copia di lavoro" (commit) e "sincronizza repository" (push / pull / fetch).
Se hai sempre un solo clone locale del tuo repository, non ha senso spingerlo. Tuttavia, con GitHub, è fare un altro clone (quello su GitHub), e spingendo le modifiche non ha almeno un vantaggio: il backup. Se il tuo computer muore, hai ancora tutto spinto su Github.
Naturalmente, questo non è lo scopo principale di Github; github è destinato alla condivisione del codice, quindi se il tuo progetto è su github, puoi consentire ad altri di estrarre da lì, clonare il tuo progetto, agire su richieste pull dai loro cloni o persino dare ad altri fidati l'accesso push al tuo repository.
Un altro motivo per spingere è se si utilizzano diversi cloni locali. Questo può essere utile per varie cose: ad esempio, potresti voler lavorare su due diversi rami contemporaneamente, oppure potresti provare operazioni potenzialmente distruttive sul tuo repository; se tutto funziona come previsto, mantieni il clone modificato (o rispedisci le modifiche al repository originale), ma se le cose vanno a sud, puoi semplicemente eliminare il clone incasinato e tornare a quello originale (che è ancora invariato) .
Alcune persone usano persino git per la distribuzione: anche la versione di produzione è un repository git e l'aggiornamento a una versione più recente è una questione di recupero e checkout (ovviamente, funziona solo se non è necessario un passaggio di generazione). Non lo consiglierei necessariamente per cose serie, ma per piccole cose è una soluzione semplice e pragmatica.