Używanie zatwierdzeń w Git

Spisie treści
Zmiany w Gita Nie są one takie same jak w innych systemach zarządzania i kontroli wersji, ponieważ przechowując tylko to, co naprawdę się zmieniło, zmniejsza rozmiar plików generowanych do kontroli, a także zapewnia większą elastyczność.
Aspektem, który kontroluje to wszystko, jest indeks kto ma obowiązek wiedzieć kto, co i kiedy ze wszystkich wprowadzonych zmian, dlatego po dodaniu różnych aspektów do naszego indeks z gałąź połączenie jest wykonane popełniać.
Co to jest zobowiązanie?w Gita Wiemy, że aby dodać zmianę musimy dokonać a popełniać tego samego po dodaniu do indeksu repozytorium. Jednak co to jest popełniać dokładnie? To pytanie nie zawsze zadaje się sobie, ponieważ tak jak my Gita obsługuje to jest całkiem jasne, ale popełniać jest sposób, w jaki Gita rejestruje aktualny stan indeksu repozytorium i przechowuje go w odpowiednim obiekcie, w ten sposób każdy popełniać wywodzi się z poprzedniej, dzięki czemu struktura, która nie ulega zmianom, może być ponownie wykorzystana.
Zarządzanie zasobami, które sprawia, że ​​jest to tak szybkie, wynika z porównań dokonywanych między SHA1 Dlatego też, jeśli elementy w indeksie mają ten sam skrót, nie kontynuują zagłębiania się w swoje zmiany, ponieważ są identyczne, a zatem brane są tylko te pliki, które naprawdę się zmieniły.
Sposób, w jaki zobowiązuje się pozwala na tworzenie struktur hierarchicznych dających pewność uzyskania źródła wszystkich zarejestrowanych zmian, więc jeśli zastosujemy się do najlepszych praktyk Gita Nigdy się nie zgubimy, dzięki unikalnym identyfikatorom mamy również pewność, że jeśli jakakolwiek funkcjonalność stworzyła problem, można ją znaleźć dokładnie w miejscu, w którym została uwzględniona.
Skomentowaliśmy jak zobowiązuje się mieć hasz w SHA1 z którym można je utożsamiać, okazuje się, że ten hasz czyni je również wyjątkowymi i niepowtarzalnymi, czyli jeśli mamy popełniać a w innym repozytorium znajduje się ten sam hash, abyśmy mogli wiedzieć, że jest taki sam popełniać.
Z tego powodu popełniać jest również brany pod uwagę atomowy, czyli jako pojedyncza jednostka niezależnie przechowująca stan wielu katalogów lub plików, dzięki temu możemy odwołać się do popełniać jako całość w naszym repozytorium i dzięki temu móc traktować każdy z nich jako element, który choć jest powiązany z poprzednim, jest unikalny.
Chociaż haszysz SHA1 służy jako unikalny identyfikator dla popełniać, jego struktura 40 znaków alfanumerycznych może stanowić problem, gdy chcemy porozumieć się z innym deweloperem i to wyjaśnić popełniać Rozmawiamy.
Imiona względneAby rozwiązać ten problem możemy ustalić względne imiona i łatwiejsze do zapamiętania dla zobowiązuje sięNie zastępują one skrótu, ale raczej działają jako rodzaj etykiety, która pozwala nam je zidentyfikować w bardziej ludzki sposób.
Aby porozmawiać o ostatnim popełniać z gałąź możemy po prostu odnieść się do GŁOWA, ponieważ zawsze będzie odnosić się do najnowszych i najnowszych popełniaćPonieważ jednak nie zawsze będziemy tego wymagać, wystarczy, że użyjemy pierwszych znaków haszysz, choć nie zawsze będzie wyjątkowy, więc dodając kolejne postacie osiągniemy odpowiednią unikatowość.
Zobaczmy więc polecenie, którego musimy użyć, aby osiągnąć to drugie:
git log -1 --pretty = jednowierszowy identyfikator commit

Teraz zobaczymy na poniższym obrazku, jak identyfikujemy a popełniać w naszym repozytorium testowym, w tym celu początkowo zlokalizujemy, który jest SHA1 z GŁOWA a potem nazwiemy go pierwszymi znakami, zobaczmy:

W poprzednim przykładzie odkryliśmy narzędzie do Gita to może być bardzo przydatne i jest polecenie dziennika, jest to bardzo potężne, ponieważ pozwala nam zlokalizować różne popełniać w szybki i precyzyjny sposób, jednak ma wiele parametrów i konfiguracji, które w pierwszej kolejności mogą być trudne do zapamiętania, jednak aby z niego korzystać nie musimy się ich wszystkich uczyć, możemy iść krok po kroku, gdy przyzwyczaimy się do jego posługiwać się.
Jeśli chcemy zobaczyć historię zmian, po prostu wykonaj następujące czynności:
nazwa gałęzi logu git

Dzięki temu uzyskamy szczegółowe informacje o historii z naszego gałąź i ich zobowiązuje sięZobaczmy jak to wygląda w naszej konsoli w repozytorium testów które posiadamy:

Zauważamy wtedy, jak zobowiązuje się organizowane są od najnowszych do najstarszych, co pozwala nam nieco przyjrzeć się historycznej linii zmian, jakie poniosły gałąź wybrany do przeglądania dziennika historycznego.
Ponieważ praca na konsoli bywa trochę ciężka, choć jest bardzo potrzebna, Gita oferuje nam narzędzie, które pozwala nam przeglądać historię zobowiązuje się graficznie i jest gitka nie jest podkomendą Gita jak na przykład log, który już widzieliśmy, ale jest to niezależne polecenie i pozwala nam uzyskać dostęp do większej ilości szczegółów gałęzi i jej historii.
Aby z niego skorzystać, wystarczy wykonać następujące polecenie:
gitk nazwaBranch

Zobaczmy jak wygląda jego wykonanie w konsoli:

Choć może się wydawać, że nic się nie stało, niedługo pojawi się okno z grafiką, o którą prosiliśmy gałąź określone, jak widać na poniższym zrzucie ekranu:

POWIĘKSZAĆ

Możemy zauważyć, że oprócz poprawy wizualizacji mamy znacznie większą szczegółowość.
Referencje Tak Symrefs należeć do Bibliografia Tak symboliczne odniesienia odpowiednio pierwszy odpowiada identyfikatorowi SHA1 obiektu w ramach obiektu naszego repozytorium, z drugiej strony druga odpowiada pośrednio obiektowi, mimo swojej nazwy jest również referencją.
Ta struktura odniesień jest bardzo ważna, ponieważ pozwoli nam zrozumieć organizację naszego katalogu zobowiązuje się Tak gałęzie w Gita, które są przechowywane w katalogu .git / ref.
Tworzenie symbolicznego odniesieniaJeśli chcemy jawnie stworzyć a symboliczne odniesienie po prostu użyj polecenia git symboliczne-ref, i chociaż można używać nazw takich jak GŁOWA w przypadku tych odniesień nie jest to wskazane, ponieważ w końcu mogą one doprowadzić nas do zamieszania, które może spowodować uszkodzenie naszego repozytorium.
Na koniec zobaczmy, jak wygląda wykonanie tego polecenia, gdy zastosujemy je do naszego repozytorium testowego:

Kolejny interesujący aspekt zobowiązuje się, jest to, że możemy pracować względne imionaTo sprawia, że ​​znajdowanie zakresów zatwierdzenia jest bardzo proste, na przykład jeśli chcemy zlokalizować to, co istnieje między przeglądami z określonego okresu, możemy to zrobić.
Aby to osiągnąć wystarczy użyć nazwy gałęzi i symbolu ^ i numer rewizji. Na przykład mistrz ^ gdzie odnosimy się do przedostatniej zmiany dokonanej w gałąź gospodarz.
Historia repozytoriumW ten sposób będziemy mogli poruszać się po całej historii naszego repozytorium, co daje nam możliwość dostępu względem zobowiązuje się które umożliwiły nam posiadanie aktualnego, jeśli podążamy za strukturą mistrz 2 zabierze nas do drugiego ojca popełniać, czyli ten, który dał życie równolegle, także z ~ możemy uzyskać dostęp do ojca ojca naszego obecnego zobowiązania, czyli dziadka, żeby to w pewien sposób ująć w genealogii.
Przykładem może być mistrz 2 ~ 3 Aby odnieść się do historycznych zmian w naszym repozytorium, jeśli chcemy uzyskać nazwę względnego zatwierdzenia, wystarczy użyć następującego polecenia:
git rev-parse RelativeName

To zwróci SHA1 z popełniać do którego dotarliśmy. Zobaczmy na poniższym obrazku, jak możemy uzyskać nazwę bieżącego zatwierdzenia od mastera i z mistrz ~ imię pierwszego rodzica tego samego, który byłby popełniać od którego zaczynamy:

Zauważyliśmy wtedy, jak udało nam się uzyskać dwa SHA1 różne i ważne w naszym repozytorium, tylko za pomocą względne imiona.
Na tym kończymy ten samouczek, wprowadziliśmy nowe koncepcje tego, co zobowiązuje się w GitaDaje nam to możliwość lepszego zrozumienia struktury naszych repozytoriów, dzięki czemu organizacja będzie wydawała się bardziej logiczna, a tym samym możemy być znacznie bardziej efektywni w zarządzaniu zmianami w naszym kodzie. Sposób, w jaki Gita zarządzanie różnicami czyni go tak wyjątkowym i dlatego stał się jednym z wiodących menedżerów wersji dzisiejszej technologii.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt
wave wave wave wave wave