GitHub to jedno z tych miejsc, które programistom znane jest naprawdę dobrze. Ten popularny serwis hostingowy pozwala przechowywać swoje projekty, oferując przy tym pełną kontrolę wersji (zapisywanie informacji o wszelkich zmianach). Jak z niego korzystać i co warto o nim wiedzieć?
Co to jest Git i GitHub?
Pojęcia Git i GitHub - chociaż często używane są jako synonimy – zauważalnie różnią się od siebie. Na czym polegają różnice? Najprościej rzecz ujmując: Git to implementacja systemu kontrolowania wersji, pierwotnie zaprojektowana przez Linusa Torvaldsa jako sposób zarządzania kodem źródłowym Linuksa. Istnieją również inne przykłady oprogramowania, takie jak CVS, SVN czy Mercurial, jednak są one rzadziej używane.
GitHub z kolei to firma, która hostuje repozytoria Git i dostarcza oprogramowanie do korzystania z niego. Jednym z przykładów jest tytułowy GitHub Desktop na systemy Windows 10 i 11, którego funkcje omówimy szczegółowo w tym artykule. GitHub jest obecnie najpopularniejszym hostem projektów open source pod względem zarówno liczby projektów, jak i użytkowników. Choć GitHub koncentruje się głównie na kodzie źródłowym, to inne projekty coraz częściej wykorzystują systemy kontrolowania wersji do zarządzania przepływem pracy związanym z publikowaniem czasopism, artykułów, podręczników itp.
Dlaczego GitHub, a nie Dropbox czy Google Drive?
Wiele osób może się zastanawiać, jakie korzyści oferuje Git w porównaniu do usług hostingowych, takich jak Dropbox bądź Google Drive. Powody, aby skorzystać właśnie z niego, są przynajmniej trzy:
- Obsługa języków. Git obsługuje zarówno języki tekstowe, jak i języki programowania;
- Większa kontrola. Odpowiedni system kontroli zapewnia znacznie większe możliwości zarządzania zmianami w dokumencie;
- Przydatna historia zmian. Git pozwoli Ci stworzyć historię dokumentu, w której różne etapy mogą być łatwo zarządzalne przez Ciebie, jak i przez innych.
Poza tym - GitHub Desktop pozwoli Ci łatwo rozpocząć korzystanie z kontroli wersji. Oferuje on graficzny interfejs użytkownika (GUI) do korzystania z systemu Git. GUI pozwala użytkownikom na interakcję z programem za pomocą wizualnego interfejsu, zamiast polegać na poleceniach tekstowych pisanych w konsoli poleceń Git. Chociaż korzystanie z poleceń na dłuższą metę niesie ze sobą potencjalne zalety, to korzystanie z GUI może zmniejszyć próg wejścia w kontrolowanie wersji z systemem Git.
Czy jest się czego obawiać?
Jednym z trudniejszych aspektów korzystania z GitHub jest zapoznanie się z nową, szeroką terminologią. Niektóre polecenia są dość oczywiste, jednakże inne już znacząco mniej. W tym artykule znajdziesz krótkie podsumowanie nowych terminów. Pomocne również może być posiadanie pod ręką dokumentacji systemu Git, do której można się odwołać. Pomimo to najefektywniejszym rozwiązaniem może się okazać po prostu praktyka, w której zaznajomisz się z nowymi terminami znacznie szybciej.
GitHub – jak zacząć?
1) Rejestracja
Ponieważ zamierzasz korzystać z GitHub, wymagane będzie zarejestrowanie swojego konta w tym systemie. Dla studentów i badaczy GitHub oferuje bezpłatne prywatne repozytoria. Nie są one niezbędne, ale mogą być przydatne, jeśli chcesz zachować prywatność niektórych z swoich prac.
2) Instalacja GitHub Desktop
Najnowszą wersję programu można pobrać z oficjalnej strony: desktop.github.com. Po pobraniu pliku podążaj zgodnie z instrukcjami instalatora oraz zaloguj się w swoim koncie GitHub. Po instalacji i zalogowaniu można rozpocząć korzystanie z kontroli wersji przy pomocy tego oprogramowania.
3) Tworzenie dokumentu
Warto jest zacząć od bardzo prostego dokumentu.
Dołącz powyższy tekst lub coś podobnego do nowego dokumentu w postaci zwykłego tekstu. Po wykonaniu tej czynności zapisz plik z rozszerzeniem „.md”. Jest to najpopularniejsze rozszerzenie pliku używane do tak zwanych plików „markdown”. Istnieje wiele edytorów tekstu, które umożliwią łatwe kodowanie dokumentów takich jak przykładowo Notepad ++, Sublime czy Visual Studio.
W celu najefektywniejszego wykorzystania systemu Git do kontroli wersji ważna jest odpowiednia organizacja projektów i plików w folderach. Git śledzi zawartość folderu, tworząc w nim repozytorium. Repozytorium składa się z wszystkich plików w folderze, które są „obserwowane” pod kątem zmian. Najlepiej jest utworzyć po jednym repozytorium dla każdego projektu, nad którym pracujesz.
4) Dodanie dokumentu do systemu kontroli wersji
Istnieje wiele sposobów na dodanie pliku do GitHub Desktop w celu kontroli ich wersji. Jednym z nich jest przeciągnięcie folderu na okno GitHub Dekstop. Dostaniemy w odpowiedzi informację na temat tego, że folder obecnie nie jest repozytorium, i pytanie, czy chcielibyśmy go w takie przekształcić.
Jeśli wybierzemy właśnie dodane repozytorium, zobaczymy zawarte w nim pliki oraz historię zmian. Na pierwszy rzut oka w historii możemy zauważyć pozycję „Initial Commit”:
Jest to automatyczne dodanie zmian przez GitHub Desktop i oznaczone jako „Initial”, czyli rozpoczęcie naszego projektu. W tej zmianie znajdują się wszystkie dotychczasowe pliki istniejące w dodawanym przez nas do systemu folderze.
Po ukazaniu niewidocznych plików możemy zauważyć, że w naszym folderze pojawił się folder “.git” oraz plik „.gitattributes”. Są to pliki systemu kontroli wersji, które wyznaczają zasady kontroli oraz wskazują nam, że dany folder jest repozytorium.
Wróćmy do naszego dokumentu i otwórzmy go w edytorze tekstowym. Dodamy teraz do pliku jakąś zmianę w postaci przykładowo nowej linijki z tekstem.
Zapiszmy te zmiany i wróćmy do okna GitHub Desktop. Jak można zauważyć, system automatycznie wykrył zmiany w naszym pliku:
To wskazuje nam, że GitHub Desktop jest w stanie dostrzec i kontrolować zmiany w naszym pliku, lecz w tym momencie nie zostały one zapisany w oficjalnej wersji w naszym repozytorium. Aby to osiągnąć będziemy musieli zrobić COMMIT.
Commitowanie zmian
Commit informuje system Git, że dokonaliśmy pewnych zmian, które chcemy zapisać. Chociaż commit może wydawać się podobny do zwykłego zapisu pliku, za commitem kryją się inne cele niż sam zapis zmian. Chociaż ludzie często zapisują różne wersje dokumentów, często robią to tylko po to, aby móc zamknąć plik i wrócić do niego później w tym samym stanie. Commit jednak wykonuje w tym momencie swojego rodzaju „migawkę” pliku i umożliwia udokumentowanie informacji o zmianach wprowadzonych w dokumencie.
W celu „zacommitowania” zmian musimy uzupełnić podsumowanie zmian i dołączyć opcjonalną wiadomość. To, w jakim momencie tworzymy taki commit, jest bardzo ważną kwestią, ponieważ korzyści płynące z wykonywania przez system kontroli wersji migawek często zależą właśnie od tego. Czasami kusić może nas, aby commit tworzyć po prostu po ukończeniu pracy nad dokumentem, jednak może to nie odzwierciedlać tego, kiedy nastąpiły ważne zmiany.
Przy próbie commitowania zobaczysz guzik „Commit to main”. Odnosi się to do gałęzi głównej. W repozytoriach systemu Git można tworzyć wiele gałęzi danego projektu. Wizualizują one często różne miejsca pracy. Służą również do testowania nowych pomysłów lub pracy nad konkretną funkcją. Początkowo korzystanie z gałęzi nie jest koniecznie, ale zalecane jest nauczyć się używania ich, szczególnie jeśli projekt współtworzymy z innymi osobami.
O commitach możemy myśleć jako o pewnego rodzaju historii naszego dokumentu. Każdy commit rejestruje rozwój lub zmianę dokonaną w plikach w naszym repozytorium. Historię możemy prześledzić, przeglądając wszystkie z commitów. Aby ta historia była zrozumiała zarówno dla nas, jak i dla współtwórców projektu, ważne jest regularne commitowanie zmian w odpowiednich do tego momentach. Commity i ich opisy powinny być zrozumiałe bez konieczności zerkania w inne z commitów.
W podejściu stricte dotyczącym kodu możemy zwizualizować ten proces i uczynić go bardziej zrozumiałym. Gdy do jakiegoś oprogramowania dodawana jest nowa funkcja lub poprawka błędu, ważne jest, aby te funkcje można było odizolować. Jeśli commit zawiera zmiany w różnych aspektach kodu, trudno jest jednoznacznie określić, kiedy pojawiły się problemy. Utrudnia to również usunięcie pojedynczej zmiany, która powoduje błędy, jeśli inne zmiany są również uwzględnione w danym commicie.
Chcesz dowiedzieć się więcej na temat dobrych praktyk i nazewnictwa commitów oraz ich opisów, publikacji repozytoriów i wiele więcej? Nie przeocz drugiej części naszego materiału, który na łamach CentrumXP.pl ukaże się już niebawem!