Czym jest Git i GitHub i jak z nich korzystać?

W przypadku wymagań jakie mają pracodawcy często możesz trafić właśnie na znajomość systemu Git oraz hostingu GitHub. Jest to niezwykle ważne w przypadku pracy programisty, gdzie konieczne jest działanie w zespole. Znajdziesz w tym artykule najważniejsze informacje o tym czym jest Git oraz co to GitHub.

Czym jest Git oraz GitHub?

Git to w skrócie system kontroli wersji. Jest to więc narzędzie które zapisuje wszelkie zmiany powstałe w kodzie źródłowym programu. To istotne udogodnienie dzięki któremu praca w grupie staje się znacznie łatwiejsza. Wszelkie zmiany są zapisywane, a przy tym w każdej chwili możesz wrócić do poprzedniej wersji swojego programu, co potrafi przyśpieszyć pracę. Nie musisz się martwić o utratę istotnych zmian, nawet jeśli nadpiszesz konkretne linijki. To niezwykle użyteczne rozwiązanie, zapoznaj się z nim jeśli celujesz w profesjonalne programowanie. Git przyda Ci się zarówno w pracy zawodowej jak i prywatnych projektach.

Dodatkowo w momencie gdy nad projektem pracuje kilka osób, to Git nie pozwala utracić tworzonych danych (np. gdyby normalnie ktoś zapisałby plik to nadpisałby kod który wprowadziłaby inna osoba) jednak w tym przypadku wszyscy programiści nie utracą zapisanych danych. Natomiast gdy pracuje się nad tą samą częścią, to Git stara się inteligentnie połączyć powstałe zmiany. Poprawia więc to wydajność pracy nad kodem. Widać dlaczego programowanie przy pomocy Git jest tak popularne. Należy zwrócić uwagę na to, że istnieją tak zwane merge conflict, czyli problemy ze scalaniem. W momencie gdy dwóch programistów działa na tej samej linijce i ją zmienia lub jeden z nich usunie plik drugiego, to Git nie wie w jaki sposób rozwiązać powstały konflikt. W takim przypadku oznacza plik jako problematyczny (konflikt) i blokuje proces scalania. Wtedy programiści ręcznie muszą zmienić powstały kod w taki sposób, żeby wszystko działało.

Warto zauważyć, że ważny w przypadku tego systemu kontroli wersji jest docker Git, czyli platforma, która tworzy kontenery łączące kod źródłowy programu z bibliotekami używanymi przez konkretne systemy. Obraz programu może zostać skompilowany w ramach kontenera, za każdym razem gdy zajdą w nim zmiany. Połączenie docker Git jest więc dobrym rozwiązaniem w wielu przypadkach.

GitHub – jest to jeden z hostingów, na których można publikować repozytoria, czyli katalogi z kodem programów. Z systemu Git można korzystać lokalnie, czyli na swoim komputerze, ale w połączeniu z GitHub nad jednym projektem mogą pracować programiści nawet z różnych stron świata.

Jednocześnie GitHub służy wielu programistom jako portfolio. Możesz tam opublikować swoje projekty, do których będą mieli dostęp rekruterzy z różnych firm. Dodatkowo GitHub może być integrowany z innymi rozwiązaniami. Przykładowo Continuous Integration testuje program oraz wgrywa go na serwer w pełni automatycznie. Zastanawiając się nad tym co to Github, można śmiało stwierdzić, że jest to technologia wspierająca pracę każdego programisty

Warto zauważyć, że z GitHub można korzystać w ramach konsoli, ale także za pomocą różnego rodzaju graficznych interfejsów. Z tego powodu nie musisz tak dobrze znać się na komendach, żeby zacząć swoją przygodę z tym hostingiem i systemem kontroli wersji. Wystarczy, że znasz podstawy jeśli chodzi o programowanie. Git pomoże w sytuacji, gdy obawiasz się o utratę utworzonych danych lub jeśli pracujesz z kilkoma innymi osobami nad danym projektem.

Zalety korzystania z Git oraz GitHub

  • Nie musisz martwić się o utracenie nowopowstałego kodu
  • Potencjalny pracodawca będzie widział w Tobie większą wartość, ze względu na znajomość systemu Git
  • Możesz zwiększyć wydajność prac nad projektem prywatnym lub komercyjnym
  • Stworzysz portfolio ze swoimi projektami w ramach GitHub
  • Masz dostęp do repozytoriów niezależnie od tego gdzie się znajdujesz (o ile możesz połączyć się z internetem)

Podsumowując jeśli chodzi o różnice między Git, a GitHub, to ten pierwszy jest systemem, który obsługuje nowe oraz starsze wersje programu. Natomiast GitHub pozwala udostępniać je innym programistom, a także służy jako chmura w której można zapisywać swoje repozytoria (katalogi z plikami programu). Jeśli fascynujesz się programowaniem, to na pewnym etapie, wręcz konieczne stanie się korzystanie z Git. Programowanie z jego pomocą okaże się znacznie łatwiejsze, skoro nie musisz martwić się utratą danych, a przy tym wiele osób może pracować nad tym samym projektem w danym momencie.

Jak powstał Git oraz GitHub?

Co ciekawe twórcą oraz pomysłodawcą Git jest znany wielu osobom Linus Torvalds, a więc osoba, która odpowiada za stworzenie jądra systemu Linux. Już wcześniej istniały systemy kontroli wersji jak np. CVS, SVN czy BitKeeper SCM. Właśnie z tego ostatniego rozwiązania korzystano w przypadku Linuxa od roku 2002 do 2005. Było ono płatne w rozwiązaniach komercyjnych, jednak przy projektach open source (z otwartym kodem źródłowym) można było korzystać z niego za darmo. Jednak firma zmieniła swoje zasady i BitKeeper SCM stał się w pełni płatny. Wtedy Linux Torvalds niezadowolony z obecnych na rynku rozwiązań postanowił stworzyć własny system kontroli wersji, czyli Git.

Git Programowanie
Jak widać Git powstał przez potrzebę stworzenia czegoś lepszego niż dostępne na rynku rozwiązania i stał się prawdziwym kolosem znanym na całym świecie. Z pewnością jest to sporą motywacją dla tworzenia własnych projektów.

Prace nad nim rozpoczęto 3 kwietnia 2005 roku. Już w ciągu kilku dni od rozpoczęcia prac, w Gicie zaczął być przechowywany kod Gita. Natomiast po dwóch miesiącach umieszczono tam już kod Linuxa.

Z kolei 26 lipca 2005 Linus Torvalds przekazał prace nad Gitem Junio C. Hamano, który zajmuje się tym projektem do dzisiaj. Wersję 1.0 Gita wydano 21 grudnia 2005 roku.

Cele jakie Linus Torvalds postawił przed systemem Git to:

  • Prosta konstrukcja
  • Efektywna obsługa ogromnych projektów
  • Duża szybkość
  • Całkowite rozproszenie
  • Wspieranie programowania nieliniowego, czyli możliwość jednoczesnej pracy na wielu gałęziach (branch)

Jeśli chodzi o samą nazwę Git to w pliku readme tego projektu opisano go słowami „the stupid content tracker”, co jest ciekawostką, którą warto znać.

W przypadku GitHub, jego przygoda rozpoczęła się w 2008 roku. Do tej pory głównym hostingiem na którym umieszczano repozytoria był Sourceforge. Jednak posiadał on niezwykle wiele uciążliwych reklam, a przy tym też nie był zbyt wygodny w obsłudze. Z tego powodu GitHub, który okazał się niezwykle intuicyjny, a przy tym nastawiony na satysfakcję użytkownika stał się tak znany. Obecnie praktycznie każdy programista wie czym jest GitHub i jak programować w Git. Nie bez powodu ilość zarejestrowanych użytkowników to około 83 miliony osób.

Dużym atutem było to, że projekty prywatne mogły być tam umieszczane za darmo, przez co wielu programistów zaczęło z niego korzystać. Po pewnym czasie także projekty komercyjne były tam wstawiane. Z tego względu popularność Gita na całym świecie stała się jeszcze większa. Dodawano z czasem kolejne funkcjonalności do tego hostingu, a po wdrożeniu profilów zaczął on działać jako swego rodzaju serwis społecznościowy dla programistów. Należy również wspomnieć o tym, że właścicielem hostingu GitHub jest obecnie Microsoft (od roku 2018). Co spowodowało, że część programistów zwróciła się w stronę innych rozwiązań. Choć nadal dużą popularnością cieszy się Git. Programowanie z pomocą tego systemu kontroli wersji jest znacznie łatwiejsze.

Można śmiało stwierdzić, że Git wspólnie z hostingiem GitHub znacznie poprawił wydajność pracy nad programami. Warto więc porządnie się zapoznać z tym systemem oraz hostingiem i zacząć z nich korzystać, niezależnie od tego czy pragniesz stworzyć projekt dla własnej satysfakcji, czy może chcesz działać nad programami w ramach pracy zawodowej. Praktyka jest tu kluczowa jeśli chodzi o zorientowanie się czym jest GitHub w rzeczywistości.

Alternatywy dla Github

Należy także dodać informacje na temat innych używanych obecnie hostingów. Co prawda ich popularność nie dorównuje GitHub, a co za tym idzie trudniej znaleźć osoby znające się na ich używaniu. Jednak zależnie od wprowadzania kolejnych zmian przez Microsoft do hostingu GitHub, warto znać możliwe alternatywy.

Programowanie Git
W momencie gdy GitHub z jakichś przyczyn jest niewygodnym narzędziem, to istnieją dobre alternatywy z których można śmiało korzystać.

Sourceforge – ten darmowy hosting stworzono w roku 1999 i przez długi czas stał na czele tego typu rozwiązań. Jednak został zdeklasowany przez GitHub, między innymi przez to, że posiadał zbyt dużą ilość reklam, a jednocześnie nie cechował się też wygodą. Dodatkowo Sourceforge wprowadził instalator adware do programów jakie oferuje, czyli „przemycił” tam możliwość instalacji dodatkowych programów z reklamami, co oczywiście jest uciążliwe dla użytkownika. Nawet jeśli instaluje się zwykłą aplikację stworzoną niekomercyjnie, to na komputerze zostaną zainstalowane reklamy, chyba że odznaczy się odpowiednie opcje. Z pomocą Sourceforge stworzono znaną aplikację GIMP na system Windows, jednak po wprowadzeniu instalatora adware, twórcy tego oprogramowania przenieśli się na inny hosting.

Pobieranie programów oraz kodu jest darmowe (warto pamiętać o reklamach w instalatorach) jednak dołączenie do projektu lub jego stworzenie wymaga rejestracji w serwisie.

Zalety

  • Duża ilość dostępnych repozytoriów

Wady

  • Nadmierna ilość reklam
  • Niewygodna obsługa
  • Mała społeczność (3,7 miliona użytkowników)

GitLab – jest to alternatywny hosting na którym można korzystać z Git. Został stworzony przez dwóch ukraińskich programistów, a dokładniej Dmitrija Zaporożca i Valery’ego Sizova. Utworzyli go przy pomocy języku Ruby oraz po części także Go. Obecnie nie ma na nim tak wielkiej ilości kodów jak na GitHub, jednak niektóre z dużych organizacji korzystają właśnie z tej platformy. Mowa choćby o CERN, IBM czy Sony.

Zalety

  • Bardziej rozbudowane możliwości ustawiania uprawnień niż w GitHub
  • Szczegółowa dokumentacja dotycząca przenoszenia projektu na inne platformy
  • Darmowe repozytoria prywatne
  • Duża społeczność (około 30 milionów użytkowników)

Wady

  • Użytkownicy wspominają o wolniejszym interfejsie niż w GitHub

BitBucket – to kolejny darmowy hosting, który oczywiście posiada także płatne plany. Został stworzony w Django (platforma utworzona przy użyciu języka Python). Jego aktualnym właścicielem jest firma Atlassian. Obsługuje Git oraz Mercurial (system kontroli wersji napisany w Pythonie). Posiada sporą społeczność, w 2019 roku było to 10 milionów użytkowników, choć jak widać jest ona mniejsza niż w przypadku GitHub oraz GitLab.

Zalety

  • Wygodna oraz intuicyjna obsługa
  • Dobra współpraca z Jirą, czyli pakietami rozwiązań do zarządzania pracą według metodyki Agile

Wady

  • Mniejsza społeczność niż w czołowych hostingach
  • Zespoły zawierające więcej niż 5 osób wymagają płatnych planów

Wpisy, które mogą Cię zainteresować: