Wróć do listy wpisów
Różne Strony www
Agencja SEO i SEM > Blog > Co to jest GitHub

Co to jest GitHub

Co to jest GitHub

Jako początkujący programista internetowy możesz już znać GitHub jako aplikację, której używasz do hostowania i przechowywania kodu w Internecie. Jest to ważna część typowej pracy programisty stron internetowych. GitHub możesz wykorzystywać do prostych rzeczy, takich jak bezpłatne przechowywanie w chmurze swoich projektów czy pokazania kodu potencjalnym pracodawcom zainteresowanym oceną Twoich umiejętności kodowania. Ale GitHub to coś więcej.

W głównej mierze jest to narzędzie używane przez  programistów i grupy osób na całym świecie do współpracy przy niemal każdym projekcie, jaki można sobie wyobrazić. GitHub korzysta z oprogramowania do kontroli wersji (więcej informacji o niej znajdziesz w dalszej części artykułu) o nazwie Git, które można pobrać i używać na lokalnym komputerze programistycznym. Git to oddzielne oprogramowanie od GitHub. W dalszej części artykułu przybliżę ci nieco koncepcję Git i różnicę miedzy Gitem a GitHubem.

GitHub ma wiele unikalnych funkcji, które sprawiają, że w dzisiejszych czasach jest niezwykle popularny. Oprócz prostego hostingu jest to kompletny ekosystem  z rozbudowanym aspektem sieci społecznościowych, pozwalający poszczególnym programistom na udział w wielu zespołach i projektach. Gdy przejdziesz do procesu zarządzania repozytoriami za pomocą GitHub, zobaczysz, jak bardzo może to być pomocne.

Co to jest Git

Zanim zaczniemy rozmawiać o GitHubie, najpierw dowiedzmy się, czym jest Git. Najprościej rzecz ujmując, Git umożliwia developerom śledzenie zmian w plikach w ich projektach i współpracę. Załóżmy, że pracujesz nad jakimś kodem i zapisałeś zmiany, które spowodowały błąd w Twoim projekcie. Nie pamiętasz, jak wyglądał stary kod, aby go zmodyfikować. Co możesz zrobić w takim wypadku? Powinieneś wprowadzić Git, własny system kontroli wersji. Git działa w tle, zapisując zmiany w specjalnej bazie danych zwanej repozytorium. Tutaj możesz zobaczyć, kto i co zrobił, kiedy i dlaczego. Korzystając z Git, wprowadzasz zmiany do repozytorium za pomocą zatwierdzenia. Możesz także zrezygnować z przywracania poprzedniej wersji kodu.

Czym jest kontrola wersji

Kontrola wersji to sposób na zarządzanie różnymi wersjami bazy kodu.

Najpierw zadaj sobie proste pytanie: „Dlaczego mam różne wersje tego samego kodu?”. Pomyśl o tym, kiedy grasz w grę komputerową. Za chwilę trafiasz do naprawdę trudnego kamieniołomu, którego za nic nie możesz przejść, dopóki nie zabijesz bossa. Przed wejściem do kamieniołomu będziesz chciał zapisać swoją grę na wypadek, gdyby boss okazał się zbyt trudny do przejścia, a Ty miałbyś utknąć tam na wieki. Jeśli tak się stanie, po prostu wczytasz wersję gry, do której dołączyłeś, poza kamieniołomem i możesz swobodnie grać dalej.

Jednak gdy wejdziesz do kamieniołomu i zaczniesz robić postępy, będziesz chciał zapisać swoją grę w tym procesie, a nie nadpisywać oryginalną  grę zapisaną przed wejściem do kamieniołomu. Kiedy zapisujesz swoją grę z wnętrza kamieniołomu, tworzysz zupełnie nową gałąź, która jest zasadniczo kopią Twojej oryginalnej gry. Jeśli pomyślnie ukończysz poziom, Twoja obecnie zapisana wersja stanie się nową wersją główną i będziesz kontynuować grę.

Systemy kontroli wersji możemy podzielić na dwa segmenty:

  • Scentralizowane systemy kontroli wersji. W scentralizowanym systemie wszyscy członkowie zespołu łączą się z jednym serwerem, aby przeglądać i pracować z najnowszą kopią kodu. Ważną zaletą systemów scentralizowanych jest to, że są łatwe do nauczenia. Jeśli jednak serwer ulegnie awarii, nikt nie będzie mógł zobaczyć kodu ani z nim pracować.
  • Rozproszone systemy kontroli wersji. W systemie rozproszonym każdy developer przechowuje kod na swoim urządzeniu lokalnym. Jeśli serwer ulegnie awarii, użytkownicy mogą nadal współpracować w trybie offline.

Git to właśnie system rozproszony.

praca nad stroną www

Różnice między Git a GitHub

Jeśli Git jest systemem śledzenia zmian i wersji w projekcie, GitHub go obsługuje. GitHub to aplikacja internetowa zgodna z Git, internetowa baza danych, w której możesz umieszczać swoje projekty za pomocą kontroli wersji Git. Współpraca polega na umieszczaniu rozwiązań w chmurze poza komputerem lokalnym.

Zarówno Git, jak i GitHub zapewniają przydatne narzędzia do kontroli wersji dla programistów. Developerzy mogą budować swoje projekty bez obaw o degradację. GitHub dodaje do tego więcej funkcji, na przykład możliwość hostowania projektów w chmurze i więcej narzędzi dla lepszej współpracy.

Git bez GitHub – czy to możliwe?

Oczywiście jest to możliwe, ponieważ Git jest niezależny od GitHub. Nadal możesz utrzymywać kontrolę wersji lokalnie bez usługi GitHub. Oznacza to śledzenie różnych wersji kodu i historii projektu.

Jeśli używasz Git tylko lokalnie na swoim komputerze, pamiętaj, że projekt nie jest zapisany na żadnym serwerze. Oznacza to, że żadne kopie zapasowe nie zostaną utworzone, jeśli coś pójdzie nie tak z urządzeniem.

Niezbędne narzędzia dla developerów

Załóżmy, że masz aplikację, nad którą pracujesz ze swoim zespołem, i masz za zadanie dodać do niej specjalną funkcję. Zamiast budować funkcję na gałęzi głównej, która może  spowodować awarię całej aplikacji, jeśli przypadkowo coś zepsujesz, tworzysz „duplikat” aplikacji i zaczynasz budować funkcjonalność na tym duplikacie (backupie). Kiedy skończysz opracowywać tę funkcję, poproś kolegów z zespołu o przejrzenie kodu. Jeśli dostaniesz od nich pozytywny feedback, możesz bezpiecznie „scalić” swoją gałąź funkcji specjalnych z  gałęzią główną.

Gdy wielu programistów pracuje nad tą samą aplikacją, czasami kilku z nich korzysta dokładnie z tego samego pliku. Może to powodować problemy podczas scalania plików, ponieważ nie wiadomo, która wersja pliku jest prawidłowa. Kiedy tak się dzieje, dobry system kontroli wersji może sprawić, że rozwiązanie tego problemu będzie stosunkowo łatwe.

Tak właśnie działa Git oraz GitHub – są one używane po to, aby wiele osób mogło pracować nad kilkoma plikami i kilkoma funkcjami w tej samej aplikacji i uniknąć poważnych problemów spowodowanych konfliktami kodu lub wersji na lokalnym komputerze każdego programisty.

narzędzia developera

Główne cechy i funkcje GitHub

Repozytoria

Repozytoria (określane jako „repo”) mogą być tworzone przez każdego. Repozytorium jest często używane w  projekcie. Repozytorium GitHub jest domyślnie otwarte dla publiczności. Jeśli użytkownicy nie chcą publicznego dostępu do swoich repozytoriów, mogą za niewielką opłatą zachować swoje projekty jako prywatne. W takim przypadku właściciel repozytorium kontroluje, kto może wyświetlać lub kopiować kod. Z drugiej strony repozytoria publiczne mogą być przeglądane i kopiowane przez każdego. Jednak aby ktoś mógł wprowadzić zmiany w oryginalnej bazie kodu, administrator repozytorium musi je najpierw zatwierdzić. Nie martw się więc – nikt nie może modyfikować Twoich projektów repozytorium, chyba że wyraźnie udzielisz mu pozwolenia!

Branches, czyli gałęzie

Kiedy ktoś chce wprowadzić zmiany w repozytorium GitHub, tworzy osobną „gałąź”, którą możemy wyobrazić sobie jako klon aktualnej wersji w większości przypadków nazywanej „główną gałęzią” Developer będzie pracował nad funkcją w nowej gałęzi, dopóki funkcja nie zostanie ukończona.

Po zakończeniu pracy developer „potwierdza” część kodu w nowej gałęzi. Następnie tworzy żądanie, które odpowiada za ściągnięcie kodu, informując resztę zespołu, że funkcja jest zakończona. W tym momencie następuje integrowane z główną gałęzią. Członkowie zespołu mogą przejrzeć nowy kod, a administratorzy zatwierdzić scalenie. Kod zostanie scalony z gałęzią główną, a gałąź funkcji będzie mogła zostać usunięta. Wszystko to odbywa się za pośrednictwem aplikacji GitHub.

Społeczność GitHub

Biorąc pod uwagę, że GitHub jest oparty na współpracy, nie jest zaskoczeniem, że kolejną ważną funkcją jest jego aspekt społeczny. Użytkownicy mogą przesyłać zdjęcia i profile, śledzić innych użytkowników i „lajkować” ich projekty, a także oczywiście tworzyć grupy lub organizacje, w których liderzy grup czy organizacji mogą bez problemu zarządzać. Mają możliwość bardzo szczegółowej kontroli nad prawami dostępu poszczególnych członków pracujących nad projektem.

co to jest GitHub

Jak zacząć korzystać z GitHub

Rozpoczęcie korzystania z GitHub jest łatwe. Kliknij stronę GitHub  i utwórz konto. Następnie rozważ zainstalowanie Git w swoim systemie, zwłaszcza jeśli planujesz używać komputera lokalnego.

Przejdź do swojego terminala i umieść swoją nazwę użytkownika w każdym repozytorium. W tym celu użyj następujących poleceń:

  • git config –global user.name „<tutaj_wpisz_swoją_nazwę>”

(źródło: https://stackoverflow.com/questions/3580802/how-to-use-git-git-config-global)

Najlepszym wyborem jest podanie swojego imienia i nazwiska, to bardzo ułatwia pracę w zespole.

Następnie udostępnij swój adres e-mail w Git. To powinien być adres, który wpisałeś w momencie rejestracji na GitHub.

(źródło: https://stackoverflow.com/questions/3580802/how-to-use-git-git-config-global)

Gratuluję, teraz bez problemu możesz korzystać z Gita :)

Największa konkurencja GitHub

Jak to bywa w dzisiejszych czasach, prawie wszystko ma swoją konkurencję. Nie inaczej jest w tym przypadku. Największymi konkurentami GitHub są:

  1. Google Cloud Source Repositories
  2. Bitbucket
  3. Gitea
  4. GitLab
  5. Gogs
  6. Phabricator
  7. Apache Allura
  8. SourceForge
  9. AWS CodeCommit
  10. Launchpad

Podsumowanie

GitHub w zespołach nie tylko upraszcza pracę wielu programistów działających na wielu plikach, ale także wspomaga współpracę, zmniejsza prawdopodobieństwo konfliktu i poprawia jakość kodu. Wiele firm korzysta z tego rozwiązania z powodzeniem.