Skip to content
 

Git pre začiatočníkov

Naučte sa základy Git, vrátane inštalácie, základných príkazov ako init, clone, add, commit, push a pull, a kľúčové pojmy Git ako repozitáre, vetvy a zlúčenie. Ideálne pre začiatočníkov, ktorí chcú začať s riadením verzií a spoluprácou na kóde.

Daniel StienenSimon ReherTill Preußod Daniel Stienen, Simon Reher a Till Preuß · ~ 7 min čítania
Naučte sa základy Git, vrátane inštalácie, základných príkazov ako init, clone, add, commit, push a pull, a kľúčové pojmy Git ako repozitáre, vetvy a zlúčenie. Ideálne pre začiatočníkov, ktorí chcú začať s riadením verzií a spoluprácou na kóde.
Naučte sa základy Git, vrátane inštalácie, základných príkazov ako init, clone, add, commit, push a pull, a kľúčové pojmy Git ako repozitáre, vetvy a zlúčenie. Ideálne pre začiatočníkov, ktorí chcú začať s riadením verzií a spoluprácou na kóde.
 

Toto je prvý blogový príspevok našich nových stážistov v oblasti softvérového inžinierstva—Daniela, Simona a Tilla. Radi by sme počuli vašu spätnú väzbu!

Git je open source systém na kontrolu verzií, ktorý sa používa na ukladanie a správu kódu, udržiavanie rôznych verzií programu, zdieľanie a spoluprácu s ostatnými a obnovu strateného alebo poškodeného kódu. Hoci ponúka širokú škálu funkcií a možností, iba niekoľko základných príkazov je potrebných pre najbežnejšie druhy operácií a na rýchly začiatok práce.

Tip: Oficiálnu dokumentáciu nájdete na git-scm.com/docs.


Predpoklady

Predtým, než začnete používať Git, musíte ho nainštalovať na váš počítač. Inštalačné pokyny pre váš operačný systém nájdete na git-scm.com/downloads. Všeobecne platí, že dobrý východiskový bod by mal obsahovať:

  • Inštalovaný Git
  • Nástroj príkazového riadku na vykonávanie príkazov git, ako napríklad Git Bash
  • Základné znalosti o používaní príkazového riadku na navigáciu vo vašom súborovom systéme

Skôr než začneme vytvárať prvý archív (repository), musíme nakonfigurovať náš používateľský profil git. Toto sa neskôr zobrazí v commitoch, aby bolo možné sledovať, ktorý používateľ vykonal konkrétnu zmenu. V našom príkazovom riadku spustíme nasledujúce príkazy (nahradiť vlastným e-mailom a menom):

git config --global user.email "vy@priklad.com"
git config --global user.name "Vaše Meno"
Potom, overíme, či bola konfigurácia úspešná spustením:
git config --list

Toto by malo zobraziť používateľské meno a e-mailovú adresu, ktoré sme práve nastavili.


Terminológia

Skôr než začneme, objasníme si niektoré termíny:

  • Repository: Archív je adresár, ktorý obsahuje všetky súbory a priečinky vášho projektu, ako aj históriu všetkých vykonaných zmien.
  • Commit: Commit je snímka archívu v konkrétnom okamihu. Obsahuje všetky zmeny urobené na súboroch a priečinkoch od posledného commitu.
  • Branch: Branch je samostatná vývojová vetva v archíve. Umožňuje pracovať na rôznych funkciách alebo opravách chýb bez ovplyvnenia hlavnej kódovej základne.
  • Remote: Remote je verzia vášho archívu, ktorá je hosťovaná na serveri, ako napríklad GitHub alebo GitLab. Umožňuje vám spolupracovať s ostatnými a zdieľať váš kód.
  • Clone: Klonovanie archívu znamená vytvorenie miestnej kópie vzdialeného archívu na vašom počítači. To vám umožní pracovať na kóde lokálne a posielať zmeny späť na remote.
  • Push: Push je proces nahrávania vašich lokálnych zmien na vzdialený archív. To umožňuje ostatným vidieť a spolupracovať na vašich zmenách.
  • Pull: Pull je proces sťahovania zmien z vzdialeného archívu do vašej miestnej kópie. To vám umožní byť aktuálne s najnovšími zmenami urobenými ostatnými.
  • Merge: Merge je proces spájania zmien z jednej branže do druhej. To vám umožní integrovať nové funkcie alebo opravy chýb do hlavnej kódovej základne.
  • Conflict: Konflikt nastane, keď dve vetvy urobili zmeny na tom istom riadku kódu. Git vás vyzve na riešenie konfliktu pred spojením.
  • Working Directory: Pracovný adresár je miestna kópia vášho archívu, kde vykonávate zmeny na súboroch. Obsahuje všetky súbory a priečinky vášho projektu.
  • Fork: Fork je kópia archívu, ktorá vám umožňuje robiť zmeny bez ovplyvnenia pôvodného archívu. Často sa používa v open source projektoch na prispievanie zmien.
  • Pull Request: Pull request je žiadosť o spojenie zmien z jednej vetvy alebo forku do druhej. Umožňuje ostatným prehliadať a debatovať o zmenách pred ich spojením.
  • Cherry-pick: Cherry-picking je proces aplikovania konkrétneho commitu z jednej vetvy na druhú. Umožňuje vám selektívne aplikovať zmeny bez spájania celých vetví.
  • Checkout: Checkout vetvy alebo commitu znamená prepnutie na tú vetvu alebo commit vo vašom pracovnom adresári. To vám umožní pracovať na rôznych funkciách alebo opravách chýb.


Vytvorenie archívu: git init

Príkaz init premení aktuálny adresár na nový Git archív. Najprv prejdime do priečinka, ktorý chceme premeniť na archív, a spustime tento príkaz:

git init

Vybraný adresár by teraz mal obsahovať jeden priečinok, '.git', ktorý obsahuje všetko, čo Git potrebuje na sledovanie zmien v tomto adresári a správu vetiev (priečinok je skrytý a nemusí byť zobrazovaný vo vašom OS ako štandard). Momentálne ide iba o lokálny archív, pretože ešte nebol pripojený k žiadnemu vzdialenému úložisku Git, ako je GitHub, GitLab alebo podobne.


Klonovanie archívu: git clone

Namiesto inicializácie vlastného čerstvého archívu môžeme použiť aj príkaz clone na stiahnutie kópie existujúceho archívu. V novom prázdnom adresári spustíme napríklad:

git clone https://github.com/golang/go.git

Toto vytvorí miestnu kópiu archívu Golang so všetkými jeho vetvami. URL adresa je na hlavnej stránke archívu a môžeme ju skopírovať kliknutím na zelené tlačidlo "Code". Klonovanie je možné aj pomocou SSH, ak ste si nastavili SSH kľúče pre váš GitHub účet. V tomto prípade by URL adresa vyzerala inak.


Príprava na Commit: git add

Vráťme sa späť do nášho prvého adresára a vytvorme nový súbor:

touch test.txt
echo "Hello World!" > test.txt

Ak teraz spustíme príkaz git status na zobrazenie aktuálneho stavu nášho archívu, uvidíme, že súbor je nesledovaný. To znamená, že Git si ho zatiaľ nevšimol a ešte nebude zahrnutý v nasledujúcom commite:

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test.txt

Ešte sme git neinformovali, ktoré súbory by mali byť zahrnuté do jeho sledovania. Na začatie sledovania nášho novovytvoreného textového súboru môžeme spustiť:

git add test.txt

– alebo ak sme leniví a chceme pridať všetko v adresári naraz, môžeme použiť git add . na rekurzívne pridanie všetkého nového alebo zmeneného v adresári a jeho podadresároch:

Ak teraz znova spustíme git status, uvidíme, že súbor je teraz pripravený na commit:

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   test.txt

Súbor bol pripravený, t. j. zaradený na zahrnutie do novej verzie/revízie nášho archívu, ale ešte nebol commitnutý.


Committing Zmeny: git commit

Používame príkaz commit, aby sme všetky naše pripravené zmeny spojili a vytvorili nový commit, v podstate snímku aktuálneho stavu nášho projektu, na ktorú môžeme stavať a ku ktorej sa môžeme neskôr vrátiť. Urobme to teraz v našom archíve:

git commit

Ak nie sú dané žiadne možnosti, git otvorí konfigurovaný predvolený editor na písanie správy commitu. Tu by sme mohli pridať nadpis a popis pod komentované riadky nasledovne:

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
#	new file:   test.txt
#
Added test.txt to the repo

This is the description, explaining the commit in more detail.
Anyone else reading this should be able to tell
what the commit contains and why it was made.

Podľa konvencie by prvý riadok mal byť nadpis, jednou vetou vysvetľujúci, o čom commit je. Nasledujúci text, oddelený prázdnym riadkom, môže byť použitý na ďalší popis a vysvetlenie commitu. Uložme súbor a zatvoríme ho. Git by to mal rozpoznať a vytvoriť commit.

Poznámka: Ak chceme zmeniť predvolený editor na napríklad VS Code, môžeme to urobiť spustením príkazu git config --global core.editor "code --wait". Iné editory môžu byť nastavené podobne, napr. git config --global core.editor "nano" pre nano alebo git config --global core.editor "vim" pre vim.


Vzdialený archív: git remote

V tomto bode náš archív stále existuje iba na našom lokálnom stroji. Na účely zálohovania a spolupráce môžeme chcieť udržiavať náš archív na nejakej online platforme. Pre tento príklad použijeme GitHub, ale akékoľvek alternatívy ako GitLab alebo Bitbucket budú fungovať rovnako, pokiaľ máte funkčný odkaz a prístup k online archívu.

Predpokladajme, že máme nastavený čerstvý archív na https://github.com/gentlent/test_project.git. Teraz môžeme spustiť príkaz remote, ktorý spojí náš lokálny archív so vzdialeným:

git remote add origin https://github.com/gentlent/test_project.git

Potom použijeme git remote -v na overenie. Malo by zobraziť `origin` nasledované našou URL.


Pushing Zmeny: git push

Teraz sme pripravení poslať náš predtým vytvorený commit do nového vzdialeného archívu a synchronizovať sa s ním. Spustíme git push s niekoľkými príznakmi—origin je predvolené meno pre náš vzdialený archív, a main je náš vlastný názov vetvy:

git push -u origin main

Poznámka: Predvolený názov vetvy býval v minulosti master. Mnohé platformy dnes predvolene používajú main. Ak vyššie uvedený príkaz spôsobuje chybu, skontrolujte názov vašej vetvy s príkazom git status.

Použitím príznaku možnosti -u spôsobí, že git spojí lokálnu vetvu s vzdialeným archívom. Akýkoľvek budúci príkaz push automaticky odošle z main do origin/main bez potreby špecifikácie cieľov. Skontrolovaním vzdialeného archívu na GitHub teraz môžeme vidieť, že náš textový súbor bol nahraný.


Pulling Zmeny: git pull

Ak sme urobili zmeny vo vzdialenom archíve, môžeme ich stiahnuť do nášho lokálneho archívu pomocou príkazu git pull. Týmto sa stiahnu všetky zmeny urobené vo vzdialenom archíve a zlúčia sa do našej miestnej kópie. Napríklad, ak sme urobili zmeny v súbore test.txt na GitHub, môžeme spustiť:

  git pull

Týmto sa stiahnu zmeny a zlúčia do našej miestnej kópie archívu. Ak existujú akékoľvek konflikty, Git nás vyzve na ich riešenie pred dokončením pull. Ak to teraz urobíme, dostaneme správu Already up to date, pretože Git si načítal, zistil, že neboli žiadne nové zmeny, a preskočil zlúčenie čohokoľvek.


Vyššie uvedené pokrýva minimum funkcií na začatie interakcie s ekosystémom git. Existuje mnoho ďalších užitočných príkazov, najmä pokiaľ ide o správu rôznych vetiev, ktoré nie sú tu vysvetlené. Kompletný zoznam príkazov a ich popis nájdete v oficiálnej dokumentácii na git-scm.com/docs alebo ich skúšaním v príkazovom riadku. Ak máte kedykoľvek otázku ohľadom príkazu, môžete spustiť git help <command> pre získanie krátkeho popisu, čo robí a ako ho používať.


Zdieľajte článok


Daniel Stienen
Externý

Simon Reher
Externý

Till Preuß
Externý

Gentlent
Zákaznícka podpora
support@gentlent.com



Nedávne články

Chcete sa dozvedieť viac?
Dajte nám vedieť ešte dnes.

 
GentlentOficiálna webová stránka Gentlent. Oficiálne webové stránky Gentlent sú vždy prepojené z našej webovej stránky gentlent.com, alebo obsahujú rozšírený overený certifikát.
Skyline Dusseldorf