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.
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ť:
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.
Skôr než začneme, objasníme si niektoré termíny:
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.
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.
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ý.
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.
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.
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ý.
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ť.
Daniel Stienen
Externý
Simon Reher
Externý
Till Preuß
Externý
Gentlent
Zákaznícka podpora
support@gentlent.com