Як розподілений SCM, git розрізняє поняття "зробити знімок робочої копії" (фіксувати) та "сховища синхронізації" (push / pull / fetch).
Якщо у вас є лише один локальний клон вашого сховища, то його не має сенсу просувати. Тим НЕ менше, з GitHub, ви робите ще один клон (один на GitHub), і штовхаючи зміни там має принаймні одна перевага: резервне копіювання. Якщо ваш комп’ютер помирає, у вас все ще все штовхнулося на github.
Звичайно, це не основне призначення github; github призначений для спільного використання коду, тому якщо ваш проект працює на github, ви можете дозволити іншим витягати звідти, клонувати ваш проект, діяти на запити на виклики з їхніх клонів або навіть надавати довіреним іншим просунути доступ до вашого сховища.
Ще одна причина підштовхування - якщо ви використовуєте кілька локальних клонів. Це може бути корисно для різних речей: наприклад, ви можете одночасно працювати над двома різними гілками, або ви можете спробувати можливі руйнівні операції у вашому сховищі; якщо все працює за призначенням, ви зберігаєте модифікований клон (або відсуньте зміни назад до початкового репо), але якщо все піде на південь, ви можете просто видалити заплутаний клон і повернутися до початкового (який досі не змінився) .
Деякі люди навіть використовують git для розгортання: виробнича версія - це також git repo, а оновлення до нової версії - це питання вибору та замовлення (очевидно, це працює лише у тому випадку, якщо вам не потрібен крок збирання). Я не обов'язково рекомендував би його для серйозних речей, але для дрібних речей це просте і прагматичне рішення.