Quest: Git i GitHub

Git to system kontroli wersji, który umożliwia śledzenie zmian w kodzie, ułatwiając współpracę w zespołach programistycznych oraz zarządzanie różnymi wersjami projektu. Działa lokalnie na komputerze i pozwala między innymi na łatwe odzyskiwanie wcześniejszych wersji kodu.

GitHub to platforma do hostowania zdalnych repozytoriów Git, która umożliwia programistom współpracę, przeglądanie kodu i zarządzanie projektami w chmurze. Alternatywami dla GitHub są m.in. GitLab, Bitbucket czy SourceForge.

Podstawowe pojęcia

Repository (repozytorium)miejsce, gdzie trzymany jest cały projekt. To „folder + historia zmian”. zawiera pliki projektu, zapisuje wszystkie zmiany w czasie, można go skopiować i pracować lokalnie
Clone (klonowanie)zabranie projektu na swój komputer. robisz pełną kopię repozytorium, masz wszystko: kod + historia, możesz pracować bez internetu
Branch (gałąź)równoległa wersja projektu do pracy bez psucia głównej. jak „osobny tor pracy”, można eksperymentować, główny projekt (main/master) zostaje bezpieczny
Commitzapis „checkpointu” zmian. robisz zapis postępu pracy, każdy commit to mały krok w historii, można cofnąć się do wcześniejszych stanów
Mergepołączenie dwóch wersji pracy. np. łączysz branch z głównym projektem, wprowadzasz zmiany do wspólnej wersji, czasem trzeba rozwiązać konflikty
Pull request (PR)propozycja zmian do projektu. „proszę, sprawdź moje zmiany i zaakceptuj”, miejsce do dyskusji i przeglądu kodu, standard pracy zespołowej
Forkskopiowanie czyjegoś projektu na własne konto. robisz „własną wersję cudzej pracy”, możesz ją modyfikować bez wpływu na oryginał, często używane w open-source
Pullpobranie najnowszych zmian z serwera. synchronizujesz swój lokalny projekt, dostajesz to, co zmienili inni

Jak to się łączy

  • repozytorium = projekt
  • clone = zabierasz projekt na komputer
  • branch = robisz swoją wersję roboczą
  • commit = zapisujesz postępy
  • pull request = prosisz o włączenie zmian
  • merge = łączenie zmian
  • fork = kopiujesz projekt dla siebie
  • pull = aktualizujesz się

Szybki start

Najpierw zainstaluj Git na komputerze: git-scm.com.

Wszystkie typowe funkcje można łatwo wyklikać, ale warto przynajmniej przeczytać jakie polecenia są wykonywane w tle w czasie klikania. Na początek wystarczy rozumieć to co w filmie i umieć wyklikać to co poniżej.

Jeśli chcesz używać poleceń – wykonuj je w wierszu poleceń swojego systemu (cmd, terminal) lub w wierszu poleceń swojego edytora kodu. Na początek potrzebna jest minimalna konfiguracja:

git config --global user.email "adres@poczty.pl"<br>
git config --global user.name "piotrek"<br>

Przykładowe polecenia GIT (jeśli ktoś nie chce klikać)

git init                 # Inicjalizuje nowe repozytorium
git clone <url>          # Klonuje zdalne repozytorium
git status               # Pokazuje stan plików
git add <plik>           # Dodaje plik do staging area
git add .                # Dodaje wszystkie zmienione pliki
git commit -m "wiadomość" # Zapisuje zmiany z komentarzem
git push                 # Wysyła commity do zdalnego repo
git pull                 # Pobiera i scala zmiany ze zdalnego repo
git branch               # Wyświetla listę gałęzi
git branch <nazwa>       # Tworzy nową gałąź
git checkout <gałąź>     # Przełącza na inną gałąź
git merge <gałąź>        # Scala gałąź z obecną
git log                  # Pokazuje historię commitów
git diff                 # Pokazuje niezapisane zmiany
git reset <plik>         # Usuwa plik ze staging area
git rm <plik>            # Usuwa plik i dodaje zmianę do staging
git stash                # Tymczasowo zapisuje niezacommitowane zmiany
git remote -v            # Pokazuje zdalne repozytoria

Zadanie

  • Wybierz prosty projekt z kilkoma plikami napisanymi w dowolnym języku.
  • Zainicjuj folder projektu w git.
  • Dodaj pliki.
  • Utwórz startowy commit. Pamiętaj o sensownym opisie.
  • Wprowadź zmiany w kodzie.
  • Utwórz kolejny commit. Pamiętaj o sensownym opisie.
  • Dodaj nowy plik do projektu i znów utwórz nowy commit. Pamiętaj o sensownym opisie.
  • Utwórz zdalne repozytorium (np. na GitHubie) i połącz je z lokalnym repozytorium.
  • Wprowadź zmiany w kodzie.
  • Utwórz kolejny commit. Pamiętaj o sensownym opisie.
  • Zsynchronizuj zdalne i lokalne repozytorium.
  • Ustaw repozytorium zdalne jako publiczne i wyślij mi linka
    Teraz możesz używać swojego konta na GitHubie jako quasi-bloga : )

Twój komentarz

Zapisz moje dane, adres e-mail i witrynę w przeglądarce aby wypełnić dane podczas pisania kolejnych komentarzy.