Wprowadzenie do Gita

Opublikowany: 2022-06-30

Bez względu na to, czy budujesz zupełnie nową stronę internetową, rozwijasz motyw lub wtyczkę, czy konfigurujesz zaawansowane strategie ciągłej integracji i wdrażania, będziesz pracować z kodem.

Pod każdą witryną wykonywany jest kod — niezależnie od tego, czy używasz WordPress, WooCommerce, Drupal, Magento, NextJS, czy nawet ręcznie kodowanego HTML. Istnieją zestawy plików potrzebnych do renderowania każdej strony i wyświetlania treści światu.

Szybko odkrywasz, że potrzebujesz sposobu na śledzenie zmian kodu w czasie. Musisz wiedzieć, jakie zmiany są w najnowszej wersji dowolnego pliku i kto wprowadził każdą zmianę.

Tutaj wkracza Git. Czytaj dalej, aby dowiedzieć się więcej o Git, pracy ze zdalnymi repozytoriami Git i nie tylko.

Zrozumienie Gita

Git to system kontroli wersji, który umożliwia programistom i każdemu, kto pracuje z plikami, łatwe tworzenie i przechowywanie wersji ich zmian, przeglądanie historii tych zmian oraz udostępnianie tych zmian między urządzeniami i systemami, zapewniając jednocześnie sposób cofnąć te zmiany na wypadek, gdyby coś poszło nie tak.

Krótka historia

Już w 2005 roku zespół programistów tworzył projekt o nazwie Linux, darmowy system operacyjny o otwartym kodzie źródłowym. Potrzebowali sposobu na łatwe komunikowanie zmian wśród setek współtwórców. Początkowo rozsyłali poszczególne łatki, które zawierały zaktualizowany kod, ale okazało się to problematyczne na wielu frontach, zwłaszcza przy ustalaniu, jaka jest „prawdziwa” i najnowsza wersja danego zestawu zmian.

Sfrustrowany tymi problemami, projekt Linux skłonił Linusa Torvalda do zaimplementowania raczej nowatorskiego pomysłu na projekt polegający na dzieleniu się całym kodem między programistami i robieniu „zdjęć” ich zmian, zwanych zatwierdzeniami, które można było udostępniać i łączyć z dowolną inną kopią kod, w dowolnym miejscu na świecie. Natychmiast pomogło to w komunikacji, ponieważ wszystkie zmiany w projekcie można było postrzegać jako jedną historię.

Tą metodą przechwytywania tych migawek jest Git, który szybko zaczął żyć własnym życiem i od tego czasu był rozwijany niezależnie od projektu Linux.

Wykres zmian

Koncepcyjnie możesz myśleć o Git jak o wykresie węzłów, gdzie każdy węzeł jest migawką całego projektu w danej chwili. Książka Git na git-scm.com przedstawia strukturę migawki.

Git przechowuje dane jako migawki projektu w czasie

Ten łańcuch migawek tworzy wykres w czasie, z najnowszą wersją na początku lub na początku historii zmian. Każda migawka jest określana jako „zatwierdzenie” w Git.

Oto krótkie spojrzenie na to, jak wygląda projekt Git, jeśli umieścisz najnowszą zmianę na górze wykresu. Uwaga — ten przykład wykorzystuje GitKraken GUI GUI do wizualizacji wykresu.

Przykładowy wykres git

Tworzenie wykresu Git

Git tworzy ten wykres zmian, znany również jako Twoja historia Git, poprzez proces zatwierdzania zmian. Zanim jednak będziesz mógł zatwierdzić zmiany, musisz wyraźnie powiedzieć Gitowi, co chcesz dodać do tego zrzutu, lub zatwierdź, jak jest to właściwie określane w Git.

Podczas pracy lokalnej wszystkie zmiany, które zapisujesz w projekcie, znajdują się w „Katalogu roboczym”. Git widzi te zmiany, ale nie wie jeszcze, które zmiany chcesz zatwierdzić. Będziesz musiał wyraźnie powiedzieć Gitowi, które zmiany chcesz zatwierdzić, używając polecenia o nazwie „git add”, aby dodać te konkretne pliki do „obszaru pomostowego” Git.

Po wprowadzeniu zmian w pliku, które chcesz zatwierdzić na wykresie migawek projektu, możesz użyć polecenia „Git commit”, aby trwale zbudować tę migawkę na wykresie.

Kroki dodawania i zatwierdzania w Git

Cofanie się w czasie

Jedną z zalet Git i dostępności całej historii projektu jest możliwość cofnięcia się i cofnięcia wszelkich zmian w dowolnym momencie.

Jeśli ostatnie zatwierdzenie, które wykonałeś, coś zepsuje lub zmienisz zdanie na temat tego, co zrobiłeś, możesz wykonać „Przywrócenie Git”, aby przywrócić zatwierdzenie Git. Spowoduje to utworzenie nowego zatwierdzenia na wykresie, które po prostu cofnie zmiany, które właśnie wprowadziłeś.

Jeśli chcesz cofnąć się w czasie i sprawić, by wyglądało na to, że nigdy nie wykonałeś zatwierdzenia, możesz to zrobić za pomocą „Git reset”.

Moc rozgałęziania i łączenia w Git

Jedną z najpotężniejszych funkcji, jakie daje nam Git, jest możliwość tworzenia równoległych alternatywnych rzeczywistości. Nie naprawdę.

Ponieważ tworzysz wykres zatwierdzeń w czasie, możesz wybrać tworzenie równoległych linii zatwierdzeń, zwanych gałęziami, z dowolnego punktu historii. Nowo utworzona gałąź Git jest niezależna od głównej historii, co oznacza, że ​​możesz wprowadzać dowolne zmiany i nie wpłynie to na twoją inną pracę. Główna oś czasu jest również gałęzią i jest najczęściej nazywana gałęzią „główną” lub „główną”. Nowe oddziały i oddziały inne niż główne są powszechnie określane jako „oddziały fabularne”.

Po wprowadzeniu zmian w gałęzi funkcji możesz zastosować wszystkie zmiany w gałęzi głównej, wykonując scalenie Git.

Praca w ten sposób ma wielką zaletę. Gałąź funkcji izoluje zmiany kodu, więc jeśli wprowadzisz błędy, możesz mieć pewność, że główna gałąź jest bezpieczna. Praca w oddziałach uwalnia również główną gałąź w przypadku konieczności zastosowania aktualizacji lub poprawki bezpieczeństwa bez przerywania trwających prac rozwojowych.

Scalanie Git umożliwia również przeciąganie zmian z głównej gałęzi do gałęzi funkcji. Daje to możliwość upewnienia się, że aktualizacje wprowadzone do głównej gałęzi będą nadal działać z proponowanymi zmianami, zanim spróbujesz połączyć je z „główną”.

Jeśli pracujesz z zespołem, strategia rozgałęziania Git może zapewnić, że Twój zespół będzie mógł dokładnie przetestować zmiany przed ich wprowadzeniem do produkcji i zapewnić prosty sposób zarządzania procesem.

Praca ze zdalnymi repozytoriami w Git

Jednym z głównych celów Git jest ułatwienie udostępniania kodu ludziom na całym świecie. Wbudowane w Git pojęcie zdalnego repozytorium.

Repozytorium Git to cały folder projektu, w którym przechowujesz swoją pracę i który Git śledzi w czasie. Każde repozytorium można sklonować za pomocą polecenia klonowania Git i udostępniać nieograniczoną liczbę razy, dzięki czemu Git jest bardzo skalowalny.

Innym aspektem, który sprawia, że ​​Git jest bardzo skalowalny, jest to, że jeśli zmienisz dokument, nie musisz przechowywać zupełnie nowej kopii tego dokumentu. Zmiany są przechowywane jako małe pakiety informacji zwane „deltami”, a tylko indywidualnie zmodyfikowane wiersze pliku i niewielka ilość danych o zmianie są tym, co Git musi przechowywać lub udostępniać. Delty są bardzo lekkie, często mają tylko kilka bajtów. Na przykład, jeśli zmienisz pojedynczy wiersz w dokumencie o wielkości 100 KB, delta będzie wynosić tylko około 20 bajtów.

Aby wszystko było zgodne i spójne we wszystkich kopiach repozytorium, wystarczy wskazać, która kopia, zlokalizowana na którym komputerze, jest „prawdziwą” kopią projektu, a następnie upewnić się, że Twoje zatwierdzenia trafią do tej kopii.

Działa to również w drugą stronę. Współpracując z innymi, możesz przeciągnąć ich zmiany do lokalnej kopii repozytorium, aby upewnić się, że lokalna kopia projektu jest aktualna.

Model git pracy ze zdalnymi repozytoriami

Istnieje wiele firm, które sprawiają, że współpraca na zdalnych repozytoriach jest niezwykle prosta i łatwa w zarządzaniu. Platformy takie jak GitHub, GitLab i BitBucket oferują hosting repozytorium Git i narzędzia do współpracy online. Istnieje wiele milionów repozytoriów Git online zarządzanych przez miliony programistów, a Git śledzi każde źródło prawdy, niezależnie od tego, ile osób współpracuje.

Czego nie przechowywać w Git

Porozmawiajmy o tym, czego prawdopodobnie nie powinieneś robić z Git. Chociaż Git jest niesamowity w udostępnianiu kodu i śledzeniu zmian w czasie, istnieją pewne zadania, które nie pasują do tego modelu. Na szczęście Git daje nam wygodny sposób na zignorowanie pewnych rzeczy, zwany plikiem „.gitignore”.

Jeśli plik „.gitiginore” jest obecny, Git sprawdzi, czy powinien w ogóle obserwować te elementy. Wewnątrz „.gitiginore” możesz wyświetlić poszczególne nazwy plików, całe katalogi lub całe typy plików. Na przykład, jeśli chcesz wykluczyć wszystkie pliki .png i .jpg oraz cały folder „wp-content/uploads”, w plikach „.gitiginore” po prostu wpisz:

 *.png *.jpg wp-content/uploads

Dlaczego wykluczyć pliki multimedialne z Git?

Git przechowuje migawki projektu i przekazuje tylko „delty”. Ale jeśli dany plik jest „blobem” danych, takim jak obraz, wideo lub jakikolwiek inny plik binarny, każda zmiana w pliku stworzy zupełnie nowy blob danych. Następnie Git musi zapamiętać stan zarówno starego, jak i nowego obiektu, dodając wiele niepotrzebnego rozmiaru do repozytorium. To narasta z czasem, a repozytoria szybko stają się nieporęczne, gdy tracisz lekkie zalety Git.

Wierz lub nie, ale możesz nie chcieć śledzić zmian w samym rdzeniu WordPressa. Istnieje kilka powodów takiego stanu rzeczy.

Po pierwsze, z każdym CMS-em jest stare powiedzenie: „Nie hackuj rdzenia!” W rdzeniu WordPressa nie powinno być niczego, co wymagałoby śledzenia. Wszelkie aktualizacje będą musiały pochodzić z samego WordPressa, a jeśli chcesz mieć wcześniejszą wersję, możesz to łatwo określić podczas instalacji. Całkowicie możesz przechowywać całą instalację WordPressa w Git, ale w niektórych sytuacjach nie ma to dużej wartości. Naprawdę chcesz tylko śledzić zmiany w kodzie, którym manipulujesz, na przykład niestandardowe wtyczki i motywy podrzędne. Naprawdę dobrym pomysłem jest skontaktowanie się z dostawcą usług hostingowych w celu uzyskania porady na ten temat.

Po drugie, jeśli planujesz wesprzeć WordPressa, przekonasz się, że jest on faktycznie utrzymywany przez starszy system kontroli wersji o nazwie SVN. Ten model wymaga centralnej infrastruktury serwerowej i jest znacznie mniej popularny w porównaniu z Git, ale z drugiej strony WordPress jest starszy niż Git. Praca z systemem łatania SVN jest nieco inna i powinieneś zapoznać się z ich dokumentacją, aby uzyskać więcej informacji na ten temat.

Wniosek

Mamy nadzieję, że teraz lepiej rozumiesz, czym jest Git i jak można go wykorzystać do pracy z kodem Twojej witryny. Git może być używany do wszystkich plików, które z czasem zmienisz, nawet jeśli nie jest to kod komputerowy.

Git określa swoich docelowych użytkowników jako „pracowników wiedzy”, stary termin zapożyczony od IBM. W przypadku wszystkiego, od notatek na pulpicie po przepisy kulinarne, aż po całe książki, Git daje Ci sposób na lepszą organizację pracy i pozostawienie solidnego śladu, dlaczego dokonałeś każdej zmiany i kiedy została wprowadzona.

Możliwość cofnięcia się w czasie i zobaczenia zmian, połączona z możliwością pracy w nieograniczonych równoległych światach z rozgałęzianiem i łączeniem, sprawia, że ​​Git jest niezastąpionym narzędziem dla każdego, kto pracuje nad kodem. Git to także podstawowy sposób, w jaki zespoły współpracują przy projektach kodu.

Git jest darmowy i większość GUI Git, takich jak GitKraken, ma darmowe wersje. Nie ma powodu, dla którego nie powinieneś używać Git do śledzenia swojej pracy, więc „Git” do tego!

Powiązane zasoby

- Lokalny rozwój WordPress z XAMPP

- Zaawansowane użycie Git i przepływy pracy

- Haki Git

- Co to jest strona deweloperska?

- Buforowanie dla WordPress