Różnica między zatwierdzaniem a wypychaniem

Jeśli jesteś jednym z milionów w społeczności programistów, najprawdopodobniej już słyszałeś o koncepcji kontroli wersji. Jest to potężne narzędzie lub system, który pomaga dbać o pracę, umożliwiając szybkie przemieszczanie się po plikach, dokumentach i innych zbiorach informacji związanych z projektem. Na rynku istnieje wiele narzędzi do wykonywania tego rodzaju zadań, zarówno zastrzeżonych, jak i typu open source. Git jest obecnie jednym z najpopularniejszych i najczęściej używanych systemów kontroli wersji na świecie, a oszałamiająca liczba projektów polega na Git do kontroli wersji. Git to darmowy i rozproszony system kontroli wersji rozproszony, przeznaczony do śledzenia zmian w kodzie źródłowym podczas tworzenia oprogramowania.

Projekt Git jest reprezentowany przez strukturę danych zwaną repozytorium, w której przechowywane są wszystkie informacje związane z projektem, w tym pełna historia projektu od jego powstania. Śledzi wszystkie zmiany dokonane w plikach w czasie, budując oś czasu w trakcie realizacji projektu. Z kolei repozytorium składa się z zestawu pojedynczych migawek zawartości projektu - zbioru plików i repozytoriów - zwanych zatwierdzeniami. Jeśli chcesz podzielić się rozwojem swojego projektu ze światem, musisz popchnąć go do pilota, do którego masz dostęp do zapisu. Twoje lokalne oddziały nie są automatycznie synchronizowane ze zdalnymi repozytoriami - musisz jawnie przekazać gałęzie, które chcesz udostępnić.

Co to jest Commit?

Git traktuje swoje dane bardziej jak zestaw migawek, jak mini-system plików lub wersje projektu o nazwie commits. Za każdym razem, gdy zatwierdzasz lub zapisujesz stan swojego projektu, Git zasadniczo robi migawkę tego, jak w tej chwili wyglądają twoje pliki i przechowuje odniesienie do tej migawki. Obiekt zatwierdzenia przechowuje metadane dla każdej zmiany dokonanej w repozytorium, w tym autora, podmiot zatwierdzający, datę zatwierdzenia i komunikat dziennika. Każde zatwierdzenie wskazuje na obiekt drzewa, który przechwytuje stan repozytorium w momencie wykonania zatwierdzenia, wszystko w jednym kompletnym obrazie stanu. Podczas wprowadzania zmian w kodzie po drodze tworzy się garść zatwierdzeń - osobne zatwierdzenie dla każdej wprowadzonej zmiany. Git przypisuje każdemu zatwierdzeniu unikalny identyfikator, który śledzi co, kiedy i kto z wprowadzonych zmian.

Co to jest Push?

Każdy programista ma swoje prywatne repozytorium, w którym można śledzić ich zmiany. Dokonujesz zmian lokalnie, a kiedy jesteś gotowy, aby udostępnić je innym programistom, wypychasz je z powrotem do repozytorium, które wszyscy udostępniacie. Zatwierdź zapisuje wprowadzone zmiany tylko w lokalnym repozytorium, ale nie w zdalnym. Twoje zatwierdzenia nie są automatycznie synchronizowane ze zdalnym repozytorium - musisz jawnie przekazać zatwierdzenia, które chcesz udostępnić. Korzystając z polecenia push, stosujesz zmiany w repozytorium nadrzędnym. Każdy projekt open source ma swój własny sposób akceptowania zmian. Niektóre projekty wykorzystują w pełni rozproszony system kontroli wersji, w którym tylko jedna osoba może przekazywać zmiany do głównego repozytorium, podczas gdy istnieje model wspólnego repozytorium, w którym wszyscy programiści mogą przekazywać do repozytorium wspólnego.

Różnica między zatwierdzaniem a wypychaniem

Podstawy

- Pchanie następuje po zatwierdzeniu. Git zatwierdza rekordy i śledzi zmiany w repozytorium z każdym punktem zatwierdzenia do obiektu drzewa, który przechwytuje stan repozytorium w tym momencie, w którym zatwierdzenie zostało wykonane, wszystko w jednym kompletnym obrazie stanu. Ale commits zapisuje zmiany tylko do lokalnego repozytorium, ale nie do zdalnego repozytorium. Git push aktualizuje zatwierdzone zmiany i pozwala wysłać je do zdalnego repozytorium, gdzie wszyscy programiści mogą uzyskać do nich dostęp. Użycie polecenia wypychania powoduje po prostu aktualizację zmian w repozytorium nadrzędnym.

Komenda

- Zatwierdzenia Git mają charakter lokalny, co oznacza, że ​​są rejestrowane tylko na komputerze, na którym faktycznie występują zatwierdzenia. Polecenie „git commit” jest używane, aby powiedzieć Gitowi, aby zapisał zmiany w lokalnym repozytorium, a przed użyciem polecenia „git commit” musisz wyraźnie powiedzieć Gitowi, które zmiany chcesz uwzględnić w zatwierdzeniu. Możesz użyć polecenia „git push”, aby wypchnąć commits z lokalnego repozytorium do zdalnego repozytorium. Polecenie „push” aktualizuje nowe zatwierdzenia lokalne na zdalnym serwerze. Wypychanie przyjmuje dwa argumenty: nazwę zdalną (pochodzenie) i nazwę gałęzi (master).

Commit vs. Push: Tabela porównawcza

Podsumowanie Commit vs. Push

Krótko mówiąc, zatwierdzenie jest podstawową jednostką zmian w Git. W przeciwieństwie do innych scentralizowanych modeli kontroli wersji, Git traktuje swoje dane bardziej jak zestaw migawek, które są nazywane zatwierdzeniami. Są jak migawka całej zawartości repozytorium, wraz ze wszystkimi informacjami związanymi z projektem i związkiem tego stanu repozytorium z innymi zarejestrowanymi stanami w miarę ewolucji treści. Obiekt zatwierdzenia przechowuje metadane dla każdej zmiany dokonanej w repozytorium, w tym autora, podmiot zatwierdzający, datę zatwierdzenia i komunikat dziennika. Ale zatwierdzenie zapisuje zmiany tylko w lokalnym repozytorium, ale nie w zdalnym. Git push aktualizuje zatwierdzone zmiany i pozwala wysłać je do zdalnego repozytorium, gdzie wszyscy programiści mogą uzyskać do nich dostęp.