Uwaga! Trwają prace nad nową wersją serwisu. Mogą występować przejściowe problemy z jego funkcjonowaniem. Przepraszam za niedogodności!

🔥 Zgarnij PŁATNY STAŻ w 3 edycji kursu programowania front end (zapisy do 22.01) 🔥

GitHub co to jest i do czego służy

Nie zwlekaj, zacznij z niego korzystać

Jeśli dopiero zaczynasz naukę programowania, GitHub może Ci się jawić jako tajemniczy serwis, gdzie programiści trzymają swój kod. W tym artykule przeczytasz nie tylko o tym, czym GitHub jest, ale także o tym, do czego Ci się on przyda podczas nauki programowania. I nie mówimy tutaj jedynie o stworzeniu własnego repozytorium! Zapraszam do lektury.

Chcesz lepiej zapamiętać to zagadnienie? Wykonaj BEZPŁATNY warsztat z JavaScript: Narzędzia, aby osiągnąć swój cel!

GitHub i Git – streszczenie

GitHub to serwis, w którym możesz przechowywać swój kod źródłowy, jak i zarządzać całym procesem wytwarzania oprogramowania: od ukrywania plików źródłowych przed publicznością dzięki repozytoriom prywatnym, przez możliwość ich pobierania dzięki komendzie git clone, po prośbę o wprowadzenie zmian dzięki opcji tworzenia pull request. Co ciekawe, możemy również utworzyć tzw. fork, czyli kopię istniejącego projektu, i wprowadzić do niego własne zmiany.

To wszystko jest możliwe dzięki systemowi kontroli wersji git i poleceniom (komendom pisanym w terminalu), takim jak git add czy git commit, które zapisują historię zmian. Potem możemy je opublikować w repozytorium zdalnym utworzonym na GitHubie za pomocą komendy git push. W ten sposób do kodu mają dostęp inni programiści, którzy pobiorą go wykorzystując komendę git pull. Zazwyczaj każdy programista posiada własną kopię plików (gałąź, ang. branch) – aby nie nadpisywać zmian pozostałym członkom zespołu. Swoje zmiany potem scala (merge) z gałęzią główną (main/master).

Spis treści

Wspaniałe możliwości systemu kontroli wersji

Żeby zrozumieć, czym jest GitHub, trzeba wstępnie poznać Gita

Nie komplikując, Git to system kontroli wersji – oznacza to, że pozwala na kontrolę zmian w kodzie źródłowym wykorzystując komendy GIT. Gdy np. napiszemy coś, co zepsuje naszą dotychczasową pracę, z łatwością wrócimy do poprzedniej działającej wersji. Istotne jest to, że Git działa lokalnie i nie potrzebuje dostępu do sieci – wszystkie zmiany zapisują się na naszym dysku.

Mamy też możliwość krótkiego opisywania kolejnych zmian, co nie tylko znacznie ułatwia ich późniejsze odszukanie, ale również dokumentuje nasze postępy.

Jeśli chcesz wiedzieć więcej, zajrzyj do definicji Gita na Wikipedii.

A teraz: czym jest GitHub?

GitHub to serwis, który pozwala na przechowywanie (hostowanie) repozytoriów (publicznych oraz prywatnych). Na potrzeby prostego wyjaśnienia można przyjąć, że repozytorium to odpowiednik katalogu z projektem, wewnątrz którego śledzimy zmiany w kodzie za pomocą Gita.

Na GitHubie mamy więc repozytorium zdalne, a na swoim komputerze – repozytorium lokalne. Nad kodem pracujemy zatem w repozytorium lokalnym (czyli w wybranym edytorze kodu, np. VS Code), a potem wprowadzone i zapisane przez Git zmiany wysyłamy (pushujemy) do repozytorium zdalnego (na GitHuba).

Co to jest GitHub i do czego służy – podsumowanie i rozszerzenie zagadnienia

GitHub:

  • umożliwia hostowanie (przechowywanie) repozytoriów. Nasz kod będzie bezpieczny nawet wtedy, gdy padnie nam komputer,
  • ułatwia pracę zespołową z zachowaniem kontroli nad zmianami wprowadzanymi w projekcie. Każdy członek zespołu pracuje nad swoją częścią kodu w repozytorium lokalnym i opisuje wprowadzane zmiany (każda opisana zmiana to tzw. commit), a potem wysyła (pushuje) zmiany do repozytorium zdalnego. Dzięki temu wszyscy członkowie zespołu widzą postęp prac,
  • pozwala na dzielenie się kodem ze społecznością GitHuba i każdym zainteresowanym. To, co znajduje się w Twoim zdalnym repo publicznym, może widzieć każdy – nawet jeśli sam nie posiada konta na GitHubie,
  • umożliwia tworzenie projektów open source, czyli takich, w których każdy może przeglądać, modyfikować i rozpowszechniać oprogramowanie (więcej na temat otwartego oprogramowania na Wikipedii),
  • pozwala obserwować projekty innych programistów,
  • jest Twoją wizytówką i może zastąpić portfolio.

Sekcja Issues w repozytorium

Issues (dosłownie tłumacząc: Sprawy, Zagadnienia) to odrębna sekcja każdego repozytorium wydzielona na potrzeby śledzenia błędów (ang. bug tracking), zamieszczania pomysłów na ulepszenia czy zadań związanych z kodem.

Posiadanie tych informacji w jednym miejscu pomaga zespołowi usprawniać i rozwijać projekt. A do czego przyda się nam?

Sekcja Issues powinna zainteresować nas szczególnie wtedy, gdy korzystamy z biblioteki czy frameworka. Po natrafieniu na błąd możemy sprawdzić w Issues, czy ktoś nie miał podobnej sytuacji.

Niejednokrotnie okaże się, że raportowany przez użytkownika bug wcale bugiem nie jest, lecz wynika np. z błędnego rozumienia funkcji aplikacji. Dyskusje pod wątkami potrafią być równie pomocne, co odpowiedzi na Stack Overflow! 😉

Dla wprawy możesz zapoznać się np. z sekcją Issues Reacta. Sprawdź, jak działa wyszukiwanie; przejrzyj etykiety (labels); zobacz, jak wyglądają dyskusje w poszczególnych wątkach.

Gdy zaczniesz już używać bibliotek i frameworków, sekcja ta niejednokrotnie pomoże Ci ruszyć z miejsca, w którym utknąłeś.

Podobne repozytoria publiczne pomogą Ci zrozumieć daną technologię

Zajrzenie do czyjegoś kodu może pomóc nam w zrozumieniu technologii, którą właśnie poznajemy – zwłaszcza wtedy, gdy czytanie dokumentacji niewiele nam mówi.

By sobie pomóc, znajdźmy repozytoria z interesującym nas słowem kluczowym w nazwie. Możemy wykorzystać albo Google, wpisując np. frazę słowo kluczowe + GitHub, albo pole wyszukiwania na  stronie GitHuba.

W drugim przypadku upewnijmy się, że przeszukujemy cały serwis (All GitHub), a nie np. tylko czyjeś konto (In this user) – opcje te wyświetlą się podczas wpisywania tekstu w pole wyszukiwania.

GitHub Pages – pozwól innym przetestować Twój projekt

Po pierwszym ukończonym projekcie pokaż od razu efekt swoich starań. I nie mówimy tu o upublicznieniu repozytorium i pochwaleniu się kodem, lecz o wizualnym przedstawieniu efektu w postaci np. gotowej strony internetowej (mamy tu na uwadze osoby nietechniczne, również rekruterów!). Do tego celu posłużą nam GitHub Pages.

GitHub Pages to tzw. statyczna usługa hostingowa. Oznacza to, że nie obsłuży ona back endu, czyli działań wykonywanych po stronie serwera. Nie pokażemy więc programów napisanych np. w języku PHP czy Python.

Bez przeszkód zaprezentujemy jednak rozwiązania front-endowe, czyli napisane za pomocą HTML, CSS i JavaScript. Dlaczego? Ponieważ kod ten nie jest wykonywany po stronie serwera, lecz po stronie przeglądarki.

Przeczytaj, jak podłączyć swoją stronę do GitHub Pages – krok po kroku.

Fork – korzystaj z zadań i projektów innych osób

W prawym górnym rogu każdego publicznego (lub udostępnionego Ci prywatnego) repozytorium zobaczysz przycisk Fork.

Dzięki niemu możesz sforkować (pobrać, utworzyć kopię) czyjegoś repozytorium. Kopia znajdzie się na Twoim koncie GitHub. Możesz w ten sposób dowolnie modyfikować skopiowany projekt. Do czego przyda się takie sforkowane repo?

  • Jeśli wpadłeś na ciekawe rozwiązanie, które chcesz zaproponować autorowi projektu, możesz z poziomu swojego sforkowanego repo wykonać pull request (o którym za chwilę). W ten sposób autor zostanie powiadomiony o proponowanych zmianach i będzie miał możliwość połączenia (zmergowania) ich z własnym kodem.
  • Gdy masz wykonać projekt lub zadanie (także rekrutacyjne), które umieszczone jest na gotowym repozytorium, możesz zostać poinstruowany, by je sforkować. Wówczas po ukończeniu zadania także będziesz musiał wykonać pull request, by osoba po drugiej stronie mogła sprawdzić i ewentualnie skomentować Twój kod (wykonać tzw. code review).

Pull request – pozwól autorowi projektu zweryfikować swój kod

Pull request to akcja, dzięki której informujesz zespół/autora projektu, że ukończyłeś zadanie (np. zaprogramowałeś konkretną funkcjonalność). Gdy wprowadzisz zmiany, przycisk Pull request znajdziesz na stronie github.com po prawej – zaraz nad listą plików.

Po otrzymaniu powiadomienia osoba weryfikująca Twoją pracę (czyli najczęściej starszy stażem programista, który wykonuje code review) może:

  • pozostawić Ci komentarze w miejscach, które np. wymagają poprawek, uzupełnienia lub przedstawiają ciekawe rozwiązanie. Nie będzie to więc tylko konstruktywna krytyka, ale też szansa na zgarnięcie pochwały 😉 Oczywiście wszystko zależy od osoby dokonującej weryfikacji,
  • połączyć (zmergować) zmiany z oryginalnym kodem, jeśli Twoja praca nie budziła zastrzeżeń,
  • zamknąć pull requesta bez łączenia z oryginalnym kodem. Stanie się tak wtedy, gdy oryginalny projekt ma zostać nienaruszony – czyli, gdy np. wykonywałeś zadanie rekrutacyjne czy projekt, który otrzymałeś od swojego mentora.

Pamiętaj, że po otrzymaniu uwag zawsze powinieneś wprowadzić zasugerowane w komentarzach poprawki! Jeśli pominiesz ten krok, stracisz szansę na szlifowanie kluczowej  dla programistów umiejętności. Umiejętność ta to usprawnianie napisanego programu. Podczas tej czynności nauczysz się również cierpliwości i pokory do siedzenia nad zagadnieniem, które uważałeś już za zakończone 😉

Markdown – jak i po co tworzyć pliki README?

Co to jest README

README to plik o rozszerzeniu .md (od słowa Markdown), który zawiera istotne informacje o projekcie. Jak wskazuje jego nazwa (przeczytaj mnie), jest to plik, z którym powinniśmy się zapoznać – najlepiej przed przejściem do innych części projektu. W README znajdziesz takie rzeczy jak opis funkcjonalności czy istotne wskazówki dotyczące instalacji aplikacji.

README znajdziesz nie tylko w katalogu głównym, ale niejednokrotnie też w podkatalogach. GitHub zawsze wyświetla podgląd README pod listą plików w repozytorium.

Jak stworzyć README

Do tworzenia README wykorzystujemy wspomniany już Markdown. Jest to język znaczników służący do formatowania tekstu. Zapewne znany Ci już HTML też jest językiem znaczników. Konkretne znaczniki oznaczają w HTML konkretne elementy, a w Markdownie –  konkretne formatowanie tekstu.

Przykładowo w HTML <h1> będzie oznaczać nagłówek pierwszego rzędu, a w Markdownie użycie symbolu # poskutkuje sformatowaniem tekstu tak, by wyglądał jak największy (najważniejszy) nagłówek.

Pliki .md edytujemy w edytorze tekstu i edytorze kodu. Do tego celu nada się więc zarówno stary dobry notatnik, jak i VS Code czy Atom. Jeśli jednak nie zamierzasz korzystać z edytora kodu i wtyczek umożliwiających podgląd README po formatowaniu, a mimo to chcesz na bieżąco widzieć, jak prezentują się wykorzystane przez Ciebie znaczniki, warto użyć darmowych narzędzi dostępnych online. Polecam więc zapoznać się ze StackEdit lub Dillinger.

Jeśli chcesz dalej zgłębiać możliwości Markdownu, skorzystaj ze ściągi GitHuba. Sprawdzisz tam, jak tworzyć nagłówki, listy, cytaty, zamieszczać linki, obrazy czy fragmenty projektu.

Wskazówka: README możesz używać także do upodobnienia GitHuba do portfolio! Sprawdź, jak stworzyć README profilowe.

GitHub – warto się z nim zaprzyjaźnić

Po lekturze tego artykuł wiesz już, że GitHub to coś innego niż tylko miejsce do trzymania kodu. To rozbudowane narzędzie do rozwoju projektów, które dodatkowo ułatwia naukę i daje możliwość zaprezentowania się przyszłemu pracodawcy.

Jeśli dopiero zaczynasz swoją przygodę z programowaniem, to założenie konta na stronie serwisu github.com powinno być jednym z Twoich priorytetów. Tworzenie historii wprowadzanych w kodzie modyfikacji pokaże Ci, czy pracujesz w sposób uporządkowany, czy chaotyczny. Będziesz też doskonale widział swoje postępy!

Plusem posiadania repozytorium z projektem czy zadaniem jest możliwość udostępnienia swojej pracy społeczności, np. na grupie na Facebooku. W ten sposób będziesz mógł szybko otrzymać pomoc, gdy utkniesz, lub poprosić o przegląd kodu.

 

Jako początkujący programista powinieneś jak najszybciej wprowadzić Gita i pracę z repozytoriami do swoich codziennych działań. Dzięki temu, w ramach przygotowań do pracy nad projektami komercyjnymi, zaczniesz już naukę komend git. Program do kontroli wersji możesz pobrać z oryginalnej strony Gita.

Udostępnij ten artykuł:

Mentoring to efektywna nauka pod okiem doświadczonej osoby, która:

  • przekazuje Ci swoją wiedzę i nadzoruje Twoje postępy w zdobywaniu umiejętności,
  • uczy Cię dobrych praktyk i wyłapuje złe nawyki,
  • wspiera Twój rozwój i zwiększa zaangażowanie w naukę.

Mam coś dla Ciebie!

W każdy piątek rozsyłam motywujący do nauki programowania newsletter!

Dodatkowo od razu otrzymasz ode mnie e-book o wartości 39 zł. To ponad 40 stron konkretów o nauce programowania i pracy w IT.

PS Zazwyczaj wysyłam 1-2 wiadomości na tydzień. Nikomu nie będę udostępniał Twojego adresu e-mail.