Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

3. diel - Git - Základy

V minulej 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 Git tutoriále dokončíme nastavenie Gitu. Potom sa už zameriame na základnú prácu s Gitom. Preberieme si správnu prax pre tvorbu commitov, ktorú 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 lupiny 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 zostáva úloha oznámiť Gitu, kto sme. Na to slúžia dva jednoduché príkazy global user.name a global user.email pre 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 pre písanie 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 efektívnejšiemu písaniu 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 repositára, ktorý sa naučíme sledovať. Potom si do repositára pridáme súbor, ktorý následne pridáme aj do stage. Nakoniec súbor pridáme do commitu.

Vytvorenie projektu

Na naše účely vytvoríme 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 repositá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 pre vytvorenie repositára:

MINGW64:/c
IctDemy@DESKTOP-ADEVTG4 MINGW64 /c
$ git init
Initialized empty Git repository in C:/mygit/.git/

Nový repositá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ý repositá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 nej 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 neboli vykonané žiadne commity na tejto vetve. Repositá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)

Pre 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 budúcej lekcii, Git - Základy - Dokončenie, si vyskúšame tvorbu commitu s dlhším popisom. Naučíme sa tiež naklonovať cudzí repositár a používať súbor .gitignore.


 

Predchádzajúci článok
Git - Inštalácia
Všetky články v sekcii
Git
Preskočiť článok
(neodporúčame)
Git - Základy - Dokončenie
Článok pre vás napísal Patrik Valkovič
Avatar
Užívateľské hodnotenie:
5 hlasov
Věnuji se programování v C++ a C#. Kromě toho také programuji v PHP (Nette) a JavaScriptu (NodeJS).
Aktivity