Jako rozproszony SCM, git rozróżnia pojęcia „wykonaj migawkę kopii roboczej” (zatwierdzenie) i „repozytoria synchronizacji” (push / pull / fetch).
Jeśli masz tylko jeden lokalny klon swojego repozytorium, wtedy nie ma sensu pchać. Jednak z github, to zrobić jeszcze jeden klon (jeden na github) i popychając zmian nie ma przynajmniej jedną zaletę: kopię zapasową. Jeśli twój komputer umrze, nadal masz wszystko pchane do tej pory na github.
Oczywiście nie jest to głównym celem github; github jest przeznaczony do współdzielenia kodu, więc jeśli twój projekt jest na github, możesz pozwolić innym na pobieranie z tego miejsca, klonowanie twojego projektu, działanie na żądanie ściągania z ich klonów, a nawet dać zaufanym innym osobom dostęp push do twojego repozytorium.
Innym powodem, dla którego należy pchać, jest użycie kilku lokalnych klonów. Może to być przydatne do różnych rzeczy: na przykład możesz chcieć pracować nad dwoma różnymi gałęziami jednocześnie lub wypróbować potencjalnie destrukcyjne operacje w swoim repozytorium; jeśli wszystko działa zgodnie z przeznaczeniem, zachowujesz zmodyfikowany klon (lub wypychasz zmiany z powrotem do oryginalnego repozytorium), ale jeśli wszystko pójdzie na południe, możesz po prostu usunąć zepsuty klon i wrócić do oryginalnego (nadal niezmienionego) .
Niektóre osoby używają nawet git do wdrażania: wersja produkcyjna jest również repozytorium git, a aktualizacja do nowszej wersji jest kwestią pobrania i pobrania (oczywiście działa to tylko wtedy, gdy nie potrzebujesz kroku kompilacji). Niekoniecznie polecałbym go do poważnych rzeczy, ale w przypadku drobiazgów jest to proste i pragmatyczne rozwiązanie.