Wprowadzenie do Gita

Opublikowany: 2022-06-30

Kiedy zaczynałem budować strony internetowe, „kodowałem kowbojem”, co oznacza, że ​​często edytowałem pliki na żywo na serwerze. Zajęło mi tylko kilka uszkodzonych witryn, aby zdać sobie sprawę, że to okropny pomysł. Potem zacząłem budować witryny lokalnie na moim komputerze. Niejednokrotnie edytowałem plik lokalny tylko po to, aby przenieść go do niewłaściwej lokalizacji w moim kliencie FTP. Czasami oznaczałoby to, że nadpisywałem plik, którego nie mogłem naprawić bez szukania kopii zapasowej, którą miałem nadzieję, że zachowałem.

Jeśli nadal masz do czynienia z FTP i nie możesz przywrócić plików, czas dowiedzieć się, jak używać Git do kontroli wersji.

Co to jest kontrola wersji?

System kontroli wersji (VCS) to rodzaj oprogramowania, które pomaga programistom zarządzać zmianami w ich kodzie w czasie. Dobry system VCS będzie śledził każdą dokonaną zmianę w kodzie. Oznacza to, że jeśli coś złamiesz, możesz cofnąć się do poprzedniej wersji kodu, który działał, bez próby naciśnięcia „Cofnij”, dopóki wszystko nie zadziała.

W środowisku zespołowym system VCS pomoże Ci pracować z różnymi członkami, udostępniając narzędzia, które pozwolą na scalanie zmian w kodzie, gdy różni członkowie aktualizują pliki.

Jedną z rzeczy, które robię w Git, jest tworzenie nowej gałęzi dla każdej budowanej przeze mnie funkcji. Oznacza to, że mogę śledzić zmiany, które wprowadzam w gałęzi, ale nadal mogę wrócić do aktualnego stanu witryny, przenosząc się z powrotem do gałęzi głównej. Więcej o tym przepływie pracy porozmawiamy później.

Co to jest Git?

Git to system kontroli wersji, ale nie jedyny. Główne repozytorium WordPressa jest uruchamiane przez SVN, chociaż możesz również znaleźć kopię Git. Dostępne są również Mercurial, Visual Source Safe, VESTA i wiele innych opcji.

Pomimo tych wszystkich opcji Git jest tym, z czego prawie wszyscy korzystają, więc jest to kontrola wersji, której nauczymy się dzisiaj.

Podstawowe terminy i polecenia Git

Zanim zagłębimy się w mechanikę korzystania z Gita, musimy zrozumieć kilka terminów. Omówimy tylko te terminy, z którymi będziesz się regularnie spotykać.

Aby uzyskać pełniejszą listę wszystkiego, co możesz napotkać, spójrz na to Odniesienie do Gita lub to pełna lista poleceń Git .

Add : po wprowadzeniu zmian w kodzie użyjesz polecenia git add, aby dodać zmiany, aby można je było zatwierdzić.

Gałąź : Gałąź to wersja repozytorium, która różni się od głównego projektu roboczego. Wszystkie repozytoria są dostarczane z główną lub, częściej w starszych projektach, główną gałęzią. Ostatnio Git i Github zaczęły zmieniać domyślną nazwę gałęzi z master na main ze względu na historyczne problemy ze słowem master. Git 2.28 pozwala również ustawić domyślną nazwę gałęzi dla każdego nowego projektu.

Checkout : Używasz polecenia git checkout , aby przełączać się między różnymi gałęziami w repozytorium. Gdy używasz tego polecenia, Git zmienia zawartość plików lub dodaje i usuwa pliki, które różnią się między gałęziami.

Clone : polecenie git clone służy do tworzenia kopii repozytorium z repozytorium źródłowego. Użyjesz tego polecenia, aby uzyskać lokalną kopię zdalnego repozytorium, aby móc pracować nad kodem.

Commit : Po użyciu git add musisz użyć git commit , aby móc zapisać stan swoich plików w git.

init : git init tworzy dla ciebie puste repozytorium ze wszystkimi podstawowymi plikami, których Git potrzebuje do działania.

Scal : po wprowadzeniu zmian w jednej gałęzi i dodaniu ich oraz zatwierdzeniu, użyj polecenia git merge do migracji tych zmian do innych gałęzi.

Pochodzenie : jest to domyślna nazwa podstawowej wersji repozytorium. Jednak zwykle zmieniam moje, aby były bardziej opisowe niż pochodzenie. Jeśli pracuję z Githubem, to zmieniam ustawienia w Git, aby pochodzenie stało się githubem. To pomaga mi zachować jasność w głowie.

Push : Aktualizuje gałąź zdalną za pomocą zatwierdzeń dokonanych w lokalnej wersji repozytorium.

Repozytorium : może być również nazywane „Repo” i jest katalogiem wszystkich plików oraz historią zmian tych plików w Git.

Status : git status pokazuje aktualny status twojego działającego repozytorium.

.gitignore : jest to ukryty plik zawierający wzorce plików, których Git nie będzie zawracał sobie głowy śledzeniem. Jeśli masz .DS_Store w swoich plikach .gitignore , zignoruje wszystkie nieznośne pliki, które macOS często umieszcza w folderach.

Hosting repozytoriów Git

Jeszcze jedną rzeczą, którą należy zrozumieć przed nurkowaniem, jest to, że chociaż nie potrzebujesz zdalnej lokalizacji dla swojego repozytorium, jej brak zmniejszy niektóre korzyści płynące z używania Git. Bez zdalnego repozytorium hostowanego w innym miejscu nie będziesz mieć kopii zapasowej kodu w przypadku śmierci lub kradzieży komputera.

Github i Bitbucket to dwa z bardziej popularnych miejsc do hostowania repozytoriów Git, ponieważ są one w większości bezpłatne i możesz mieć prywatne repozytoria. Oznacza to, że Twój kod znajduje się na czyimś serwerze, więc jeśli nie podoba Ci się ten pomysł, możesz użyć Gitlab na swoim serwerze do hostowania repozytoriów.

Instalowanie Gita

W systemie macOS najprostszym sposobem zainstalowania git jest otwarcie Terminala i wpisanie git, co spowoduje wyświetlenie monitu o pobranie narzędzi wiersza poleceń Xcode w celu zainstalowania git. Gdy to się skończy, możesz uruchomić git –version, aby zobaczyć, którą wersję git posiadasz. Jeśli to nie działa, istnieje kilka innych sposobów zainstalowania git na macOS.

Użytkownicy systemu Windows mogą zainstalować Git za pomocą oficjalnego instalatora Git. Git jest również dostarczany w pakiecie z aplikacją Github Desktop, o której powiemy później.

Jeśli korzystasz z Linuksa, git powinien być dołączony do Twojego menedżera pakietów lub możesz spojrzeć na te sposoby instalacji git w Linuksie.

Konfiguracja domyślnych ustawień Git

Po zainstalowaniu Gita należy go skonfigurować tak, aby każdy zatwierdzenie używało Twojego imienia i nazwiska oraz wiadomości e-mail i zatwierdzeń, aby używać preferowanego edytora do wprowadzania komentarzy związanych z zatwierdzeniem. Przyjrzymy się, jak ustawić je w macOS za pomocą aplikacji Terminal.

git config --global user.name "Your Name" ustawi nazwę, która będzie towarzyszyć każdemu zatwierdzeniu wykonanemu na twoim komputerze.

git config --global user.email "[email protected]" ustawi adres e-mail, który jest powiązany z każdym dokonanym zatwierdzeniem.

git config --global core.editor vim będzie domyślnym edytorem dla Git vim. Chociaż kocham vima, nie jest to edytor, który wszyscy kochają. Jeśli używasz Atom, użyj git config –global core.editor „atom –wait” lub git config –global core.editor „subl -n -w” dla Sublime Text.

Jeśli jesteś w środowisku IDE, Visual Studio Code pozwala również pracować z Git bezpośrednio z poziomu aplikacji, jeśli chcesz, podobnie jak PHPStorm .

Zakładanie repozytorium

Teraz, gdy mamy już zainstalowany i skonfigurowany git, zacznijmy od podstawowego repozytorium. Otwórz terminal i utwórz folder o nazwie test-repository, wpisując mkdir test-repository . Następnie wpisz cd test-repository , aby przejść do katalogu test-repository i wpisz git init .

W tym momencie będziesz mieć jeden ukryty katalog w swoim folderze o nazwie .git . Ponieważ jest to ukryty plik, musisz wpisać ls -a w Terminalu, aby wyświetlić ukryte pliki.

Korzystanie z git add

Teraz utwórzmy plik, wpisując touch test.txt w Terminalu. Następnie wpisz git status aby zobaczyć dodany plik.

Jak widać, nowy plik, który utworzyliśmy, wyświetla się na czerwono i informuje nas, że jego status nie jest śledzony. Oznacza to, że Git widzi plik, ale nie ma o nim żadnego zapisu.

Wpisz git add test.txt , aby poinformować Git o przemieszczeniu tego pliku, a następnie ponownie wpisz git status , a Git powinien poinformować Cię, że wie o zmienionym pliku.

Zatwierdzanie plików w Git

Teraz, gdy dodaliśmy nasz plik, musimy go zatwierdzić, aby Git zapisał stan pliku. Możemy to zrobić w jednej linii, bez otwierania naszego domyślnego edytora za pomocą następującego polecenia.

git commit -m 'adding our first file'

Flaga -m mówi git, że słowa w pojedynczych cudzysłowach są komentarzem towarzyszącym poleceniu.

Teraz w naszym repozytorium znajduje się jeden plik z zapisanym statusem.

Utwórz oddział

Prawdziwa moc Git pojawia się, gdy zaczynasz wchodzić w gałęzie. Powiedzmy, że chcesz napisać kilka w swoim pliku test.txt, ale nie jesteś pewien, czy w końcu go zachowasz i chcesz się upewnić, że możesz wrócić do aktualnie pustego pliku. Możemy to zrobić za pomocą oddziału.

Aby utworzyć gałąź możemy wpisać git checkout -b new-branch . Jest to skrót do tworzenia oddziału w tym samym czasie, w którym pobieramy oddział i używam go za każdym razem, gdy potrzebuję utworzyć oddział.

Teraz otwórz nasz plik test.txt , dodaj do niego tekst i zapisz go. Następnie użyj git add i git commit jak powyżej, aby zapisać stan pliku.

Następnie wpisz git checkout master , aby przełączyć się z powrotem do domyślnej gałęzi głównej, a następnie ponownie przejrzyj zawartość pliku test.txt . Zauważysz, że cały wpisany tekst został usunięty. Git skasowałby nawet nowy plik, który był tylko w jednej gałęzi, chociaż zapisuje go, więc nie zniknął.

Scal oddział

Teraz kochamy to, co napisaliśmy w naszym pliku, więc zintegrujmy to z naszą główną gałęzią. Upewnij się, że jesteś w głównej gałęzi i wpisz git merge new-branch , aby zintegrować zmiany.

Jeśli spojrzysz teraz na zawartość test.txt , znajdziesz swoje zmiany w głównej gałęzi, tak jak je zostawiłeś.

Korzystanie z Gita z WordPress

Chociaż powyższy przykład był niezwykle prosty, to wszystko, czego potrzebujesz, aby rozpocząć pracę z Git w swoich projektach. Porozmawiajmy więc o tym, jak uzyskać projekt WordPress za pomocą Git.

Pierwszą kwestią jest to, jaki poziom w hierarchii folderów powinien być katalogiem głównym repozytorium Git. Jeśli budujesz motyw, możesz uczynić folder motywu swoim repozytorium. Ta sama logika ma zastosowanie, jeśli tworzysz wtyczkę.

Zwykle pracuję jednocześnie nad motywami i wtyczkami, więc często używam folderu wp-content jako lokalizacji dla mojego repozytorium. Kiedy to robię, upewniam się, że ignoruję folder uploads, aby nie dodać wszystkich obrazów i przesłanych plików do repozytorium. Zaśmiecają repozytorium i mogą spowolnić działanie Gita, ponieważ nie radzi sobie dobrze z kompresowaniem plików graficznych.

Jeśli zajmuję się całym procesem wdrażania, ustawiam główny folder WordPress jako główną lokalizację mojego repozytorium Git. Następnie dodaję wp-content/uploads i wp-config.php do mojego pliku .gitignore . wp-config.php jest specyficzny dla każdej instalacji WordPressa, więc nie chcę, aby był wdrażany na żadnej innej wersji pliku, która spowodowałaby zatrzymanie działania witryny.

Możesz zobaczyć kopię pliku .gitignore , którego używam jako punktu wyjścia dla każdego projektu. Zakłada, że ​​używasz wp-content jako katalogu głównego repozytorium Git, więc zmieniam niektóre wzorce ignorowania, jeśli jestem w katalogu głównym WordPressa.

Aplikacje z graficznym interfejsem użytkownika Git

Chociaż omówiliśmy podstawy za pomocą wiersza poleceń Git, nie każdy czuje się komfortowo w wierszu poleceń, wiem, że nie byłem, kiedy zacząłem używać Git. Nawet teraz od czasu do czasu chcę przyjrzeć się wizualnej reprezentacji tego, co robi Git, zanim wprowadzę jakiekolwiek zmiany w mojej konfiguracji.

Na szczęście istnieje kilka świetnych klientów GUI dla Git, których możesz użyć, więc wyróżnijmy kilka.

Pulpit Github (Windows/macOS)

Jednym ze świetnych miejsc do rozpoczęcia, gdy spojrzysz na klientów Git GUI, jest aplikacja Github Desktop.

Wiele projektów typu open source używa Github jako repozytorium kodu do współpracy i używa standardowego przepływu Github do wykonywania swojej pracy. Klient Github Desktop został stworzony, aby pomóc Ci obsłużyć ten przepływ, dzięki czemu ułatwi tworzenie żądań ściągnięcia.

Jeśli nie masz pewności, co to jest pull request, sprawdź Dokumentacja Github na temat pull requestów

Niestety dla użytkowników Linuksa nie ma oficjalnej aplikacji Github Desktop, ale istnieje rozwidlenie Github Desktop, które można zainstalować w systemach Linux.

Git Tower (Windows/macOS)

GUI Git, którego używam, to Git Tower. Git Tower jest dostępny dla macOS i Windows. Kiedy zaczynałem pracę z Git, łatwiej było mi rozwiązywać konflikty i sprawdzać, co różni pliki w tym GUI.

Kopia robocza (iOS/iPadOS)

Jeśli pracujesz głównie na iPadzie, tak jak ja, powinieneś zajrzeć do kopii roboczej. Working Copy to w pełni funkcjonalny klient Git, który działa z systemami iOS i iPadOS. Zawiera nawet integrację skrótów, dzięki czemu możesz zautomatyzować części przepływu pracy Git.

Zawijanie

Chociaż omówiliśmy dzisiaj dużo wiedzy na temat Git, nie ma mowy, aby pojedynczy post na blogu był wyczerpujący na ten temat. Możesz kontynuować naukę, korzystając z dokumentacji pomocy Nexcess, a także z tych doskonałych zasobów.

  • Dokumentacja Gita
  • Książka Pro Git
  • Lekcja Gita z Laracast
  • Własne zasoby zewnętrzne Gita

Używając Git do zarządzania projektami klientów, zaoszczędzisz sobie bólu głowy, ponieważ możesz cofnąć zmiany lub odrzucić całe gałęzie, jeśli nie chcesz już pracy, którą wykonałeś. Koniec z Ctrl + Z, dopóki nie uznasz, że wycofałeś się wystarczająco daleko, Git będzie to wszystko śledzić.