3. diel - Git - Základy
V predchádzajúcej lekcii, Git - Inštalácia, sme si popísali Git klientov a ich integráciu do vývojových prostredí. Nainštalovali sme si Git.
V dnešnom tutoriáli Git dokončíme nastavenie Gitu. Potom sa budeme sústrediť na základnú prácu s Gitom. Preberieme si tvorbu commitov, čo taktiež uplatníme pri pridaní súboru do commitu. Naučíme sa vytvoriť a sledovať stav repozitára a pridať do neho súbor.
Všetky príkazy budeme zadávať v termináli
MinTTY. MinTTY otvoríme kliknutím na ikonu lupy v
dolnej lište, zadaním príkazu bash a výberom možnosti Git
Bash.
Nastavenie Gitu
Po inštalácii Gitu z lekcie Git -
Inštalácia nám ešte ostáva oznámiť Gitu, kto sme. Na to slúžia dva
jednoduché príkazy global user.name a
global user.email na nastavenie nášho mena a
emailovej adresy:
$ git config --global user.name Name $ git config --global user.email E-mail
Name a E-mail nahradíme svojím menom
a emailovou adresou. Tieto údaje budú slúžiť ako podpis pre každý commit,
ktorý vykonáme.
Všetky nastavenia si zobrazíme príkazom
git config --list:
MINGW64:/c IctDemy@DESKTOP-ADEVTG4 MINGW64 /c $ git config --list diff.astextplain.textconv=astextplain ... init.defaultbranch=main core.editor=vim [email protected] user.name=Ictdemy gui.recentrepo= credential.helper=cache ...
Teraz si už môžeme predstaviť commity.
Commity
Commit predstavuje snapshot, čiže záznam o zmenách vykonaných v projekte v danom okamihu. História commitov umožňuje spätne sledovať, ako sa projekt vyvíjal, a umožňuje obnoviť stav projektu z ľubovoľného minulého bodu.
Každý commit obsahuje:
- Zmeny: Rozdiely medzi aktuálnym a predchádzajúcim stavom projektu, vrátane pridania, úprav alebo zmazania súborov a zložiek.
- Autora: Informácie o autorovi zmien.
- Časová pečiatka: Čas vytvorenia commitu.
- Popis: Informatívny popis vykonaných zmien.
- Odkazy na predchádzajúce commity: Lineárna história zmien s odkazmi na predchodcu.
Každý commit má svoj unikátny identifikátor (hash), založený na obsahu, autoroch a časovej pečiatke. Správne písané commity uľahčujú spoluprácu, vyhľadávanie zmien a udržanie prehľadnej histórie.
Teraz sa pozrieme na príklad kvalitného commitu, ktorý má špecifický názov a podrobný popis zmien:
Commit: "Fixing a Payment Processing Error with PayPal" Commit description: "A bug in the PayPal payment processing function, which caused unexpected behavior when the connection to the PayPal API failed, has been identified and fixed. The issue is now resolved, and payment processing is more reliable."
Zásady písania kvalitných commitov
Kvalitný commit zlepšuje verzovaciu históriu, uľahčuje spoluprácu a zrýchľuje vyhľadávanie zmien. Nasledujúce pravidlá pomôžu pri efektívnom písaní commitov:
- Stručný a výstižný názov commitu: Názov commitu by mal byť krátky (ideálne do 50 znakov) a jasne vystihovať povahu zmien.
- Podrobný popis zmien: Popis zmien by mal byť dostatočne informatívny, aby čitateľ pochopil účel commitu bez preskúmavania kódu.
- Rozdelenie zmien na logické časti: Väčší commit obsahujúci niekoľko rôznych zmien, rozdelíme na menšie logické časti.
- Prítomný čas: Názov aj popis commitu píšeme v prítomnom čase.
- Odkazy na problémy alebo úlohy: Ak projekt využíva nástroj na sledovanie problémov (issue tracker), pridáme odkazy na príslušné problémy alebo úlohy.
Po nutnej teórii o commitoch sa pomaly môžeme vrhnúť na prax. Začneme vytvorením projektu a repozitára, ktorý sa naučíme sledovať. Potom si do repozitára pridáme súbor, ktorý následne pridáme aj do stage. Nakoniec súbor pridáme do commitu.
Vytvorenie projektu
Vytvoríme si nový projekt, na ktorom si budeme ukazovať príkazy. Začneme
tým, že na disku C: vytvoríme novú zložku,
ktorú pomenujeme Mygit/.
Vytvorenie repozitára
V našej novej zložke Mygit/ si otvoríme terminál
MinTTY. Otvorenie terminálu MinTTY sme si ukázali v lekcii Git-Inštalácia.
V termináli MinTTY vložíme príkaz git init na vytvorenie
repozitára:
MINGW64:/c IctDemy@DESKTOP-ADEVTG4 MINGW64 /c $ git init Initialized empty Git repository in C:/mygit/.git/
Nový repozitár sa fyzicky nevytvorí hneď po zadaní príkazu
git init, ale až po vytvorení a potvrdení prvého commitu.
Vytvorila sa nám nová zložka .git/, v ktorej budú zdrojové
kódy a informácie o našom projekte. Výborne, práve sme si vytvorili náš
prvý repozitár 
Sledovanie stavu repozitára
Základným prostriedkom na získanie prehľadu o aktuálnom stave
repozitára je použitie príkazu git status. Tento príkaz
poskytuje podrobné informácie o zmenách v súboroch,
nových súboroch, súboroch, ktoré sú pripravené na
commit, a ďalších relevantných informáciách.
Po spustení príkazu git status získame nasledujúce
informácie:
- Nezmenené súbory: Súbory, ktoré neboli od posledného
commitu zmenené, sú uvedené ako
working tree clean. - Zmenené súbory: Upravené súbory, ktoré neboli pridané
do staging oblasti, sú označené ako
Changes not staged for commit. - Súbory v staging oblasti: Súbory, ktoré sú pripravené
na commit, sú uvedené ako
Changes to be committed. - Nové súbory: Novo vytvorené súbory sú označené ako
Untracked files. - Aktuálna vetva: Zobrazí názov aktuálnej vetvy, na ktorej pracujeme.
Sledovanie stavu nášho repozitára
Teraz sa pozrieme na stav nášho repozitára v zložke Mygit/.
Pokiaľ nie sme v priečinku Mygit/, presunieme sa do neho pomocou
príkazu cd Mygit:
MINGW64:/c ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c $ cd Mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main)
Teraz si zistíme stav nášho projektu. Otvoríme si
príkazový riadok a spustíme príkaz git status:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) nothing added to commit but untracked files present (use "git add" to track)
Poďme si vysvetliť, čo nám Git píše.
On branch master
Informácie, že sa nachádzame na vetve s názvom
master.
No commits yet
Oznámenie, že na tejto vetve neboli vykonané žiadne commity. Repozitár ešte neobsahuje históriu zmien.
Untracked files
Zoznam nezaznamenaných súborov.
Nothing added to commit but untracked files present (use "git add" to track)
Upozornenie, že sme nevykonali žiadne zmeny v commitoch, ale máme
nezaznamenané súbory, ktoré môžeme pridať do repozitára
pomocou príkazu git add.
Pridanie súboru
Teraz si ukážeme, ako pridať súbor do repozitára a vykonať commit.
Začneme vytvorením nového súboru index.html v priečinku
Mygit/. Do súboru index.html si potom vložíme
nasledujúci HTML kód:
<!DOCTYPE html> <html> <head> <title>Name of the page</title> </head> <body> <p>Text on the page</p> </body> </html>
Po vytvorení súboru skontrolujeme stav pracovného adresára pomocou
príkazu git status:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) index.html :: Our newly created file nothing added to commit but untracked files present (use "git add" to track)
Pridanie súboru do stage
Aby sme začlenili súbor index.html do verzovacieho systému,
pridáme ho do staging oblasti pomocou príkazu
git add <file_name>:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ git add index.html IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main)
Na pridanie viacerých súborov naraz by sme použili ich názvy
oddelené medzerou: git add file_1 file_2. Na pridanie všetkých
súborov v pracovnom adresári do staging oblasti by sme použili skrátený
zápis: git add ..
Teraz zadáme znova príkaz git status aby sme videli, že
súbor index.html bol pridaný do staging
oblasti:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ git status On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: index.html Untracked files: (use "git add <file>..." to include in what will be committed)
Súbor index.html je teraz pripravený na pridanie do
commitu.
Pridanie súboru do commitu
Po pridaní všetkých potrebných súborov do staging oblasti, vytvoríme
commit príkazom git commit -m "commit_name":
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ git commit -m "Added index.html file" [main (root-commit) c61bcd4] Added index.html file 1 file changed, 9 insertions(+) create mode 100644 index.html
Hodnoty c61bcd4 a 100644 môžete mať
iné.
Commit si overíme príkazom git log:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit(main) $ git log commit c61bcd487e6b90a6f283c147ff20dcea65f05b5c (HEAD -> main) Author: Ictdemy <[email protected]> Date: Wed Aug 30 10:42:37 2023 +0200 Added index.html file
V ďalšej lekcii, Git - Základy - Dokončenie, si vyskúšame tvorbu commitu s dlhším popisom.
Naučíme sa tiež naklonovať cudzí repozitár a používať súbor
.gitignore.
