P2-012
← Všetky témyZáklady prostredia · 02 / 18

Git – základy pre prácu v STEMlabe

Poznámka

Git je nástroj na sledovanie zmien v súboroch a spoluprácu na projektoch. V STEMlabe ho používaš na ukladanie a odovzdávanie svojich projektov (Python, Arduino kód, dokumentácia) na náš vlastný server git.stemlab.sk, kde bežia GitLab aj Mattermost.

Git vs. GitLab – v čom je rozdiel

Git je program, ktorý bežiaci na tvojom počítači sleduje históriu zmien v priečinku projektu. GitLab je webová platforma (bežiaca na našom serveri git.stemlab.sk), kam si históriu môžeš nahrať, zdieľať ju so spolužiakmi a vyučujúcim, a pracovať na nej z viacerých počítačov.

Tvoj počítač (Git)  --push-->  git.stemlab.sk (GitLab)  --pull-->  iný počítač

Upozornenie

Git a GitLab nie sú to isté. Git funguje aj úplne bez internetu – iba lokálne. Až príkaz push/pull posiela zmeny na server.

Základné pojmy

  • repozitár (repo) – priečinok projektu sledovaný Gitom
  • commit – “uložený bod” v histórii – snímka projektu s popisom zmeny
  • push – odoslanie commitov na server (git.stemlab.sk)
  • pull – stiahnutie commitov zo servera
  • clone – stiahnutie celého repozitára prvý raz
  • branch (vetva) – samostatná línia vývoja, oddelená od hlavnej

Prvotné nastavenie

Pred prvým použitím Gitu na počítači sa musíš identifikovať – tvoje meno sa potom zobrazuje pri každom commite.

git config --global user.name "Meno Priezvisko"
git config --global user.email "tvoj_login@stemlab.sk"

Tip

Toto nastavenie stačí urobiť raz na počítač, nie pri každom projekte.

Prihlásenie na git.stemlab.sk

  1. Otvor https://git.stemlab.sk v prehliadači a prihlás sa svojím školským kontom.
  2. Vytvor nový projekt (alebo požiadaj vyučujúceho o pozvanie do existujúceho).
  3. Skopíruj Clone URL – nájdeš ju pod modrým tlačidlom Clone na stránke projektu.

Získanie projektu – clone

Existujúci projekt zo servera stiahneš jedným príkazom:

git clone https://git.stemlab.sk/tvoj_login/nazov_projektu.git
cd nazov_projektu      # prejdi do stiahnutého priečinka

Upozornenie

Pri prvom pripojení na git.stemlab.sk ti Git/GitLab vyžiada prihlasovacie meno a heslo (alebo token, podľa nastavenia servera). Bez správnych prístupových údajov clone, push ani pull nebudú fungovať.

Základný pracovný cyklus

Toto sú 4 príkazy, ktoré budeš používať najčastejšie – v presne tomto poradí:

git status                       # čo sa zmenilo od posledného commitu?
git add nazov_suboru             # priprav zmenu na uloženie (alebo: git add .)
git commit -m "Stručný popis"    # ulož pripravené zmeny ako nový commit
git push                         # odošli commity na git.stemlab.sk
git pull                         # stiahni nové commity zo servera (napr. od spolužiaka)

Tip

git status spúšťaj často – ukáže presne, ktoré súbory sú zmenené, nové, alebo pripravené na commit. Nikdy neuškodí.

Mini-úloha – prvý commit

  1. Vytvor nový priečinok ~/projekty/git-test a prejdi doň.
  2. Spusti git init (vytvorí nový lokálny repozitár).
  3. Vytvor súbor poznamky.txt s ľubovoľným textom.
  4. Spusti git add poznamky.txt a potom git commit -m "Prvý commit".
  5. Over históriu príkazom git log.

Súbor .gitignore

Niektoré súbory nechceš ukladať do histórie – napríklad dočasné súbory Pythonu alebo veľké binárne výstupy. Vytvor súbor .gitignore v koreni projektu:

__pycache__/
*.pyc
.vscode/
_book/

Git tieto súbory a priečinky bude od teraz ignorovať – git status ich ani nezobrazí.

Vetvy (branches)

Vetva je samostatná kópia projektu, na ktorej môžeš skúšať zmeny bez toho, aby ovplyvnili hlavnú verziu (main).

git branch                       # zoznam vetiev, * označuje aktuálnu
git branch nova-funkcia          # vytvor novú vetvu
git checkout nova-funkcia        # prepni sa na ňu
git checkout -b nova-funkcia     # vytvorenie + prepnutie v jednom kroku
git checkout main                # návrat na hlavnú vetvu

Keď je nová funkcia hotová a odskúšaná, zlúčiš ju do main:

git checkout main
git merge nova-funkcia

Upozornenie

Ak Git pri merge nahlási “CONFLICT”, znamená to že rovnaký riadok bol zmenený na dvoch miestach naraz. Git ti v súbore vyznačí obe verzie pomocou značiek <<<<<<<, =======, >>>>>>> – musíš ručne vybrať, ktorá časť ostane, a značky vymazať.

História a porovnávanie

git log                          # história commitov (najnovší navrchu)
git log --oneline                # skrátený výpis, jeden commit na riadok
git diff                         # čo presne sa zmenilo od posledného commitu
git diff --staged                # čo presne je pripravené v "add", ale ešte nie v commite

Mini-úlohy – Git

  1. V projekte git-test vytvor novú vetvu pokus a prepni sa na ňu.
  2. Uprav poznamky.txt, ulož zmenu ako nový commit.
  3. Prepni sa späť na main a všimni si, že zmena v poznamky.txt zmizla.
  4. Zlúč vetvu pokus do main príkazom git merge.
  5. Over git log --oneline – mal by si vidieť obidva commity.
  6. Vytvor na git.stemlab.sk nový prázdny projekt a napoj naň lokálny repozitár: git remote add origin <URL>, potom git push -u origin main.

Cheat sheet – rýchla referencia

git config --global user.name "Meno"     # nastavenie mena (raz na počítač)
git clone URL                            # stiahni projekt zo servera
git status                               # čo sa zmenilo
git add súbor                            # priprav zmenu (alebo: git add .)
git commit -m "popis"                    # ulož zmenu ako commit
git push                                 # odošli na git.stemlab.sk
git pull                                 # stiahni zmeny zo servera
git log --oneline                        # história commitov, skrátene
git branch                               # zoznam vetiev
git checkout -b nazov                    # nová vetva + prepnutie
git checkout main                        # späť na hlavnú vetvu
git merge nazov                          # zlúčenie vetvy do aktuálnej
git diff                                 # rozdiely oproti poslednému commitu
Postup sa ukladá iba v tomto prehliadači.
18 kapitol · vyhľadávanie aj v texte