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
.