{"id":21930,"date":"2022-03-22T14:41:38","date_gmt":"2022-03-22T13:41:38","guid":{"rendered":"https:\/\/www.websupport.sk\/podpora\/?post_type=ht_kb&#038;p=21930"},"modified":"2022-03-22T14:55:46","modified_gmt":"2022-03-22T13:55:46","slug":"git-historia-instalacia-a-pouzitie-offline","status":"publish","type":"ht_kb","link":"https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/","title":{"rendered":"Git &#8211; hist\u00f3ria, in\u0161tal\u00e1cia a pou\u017eitie offline"},"content":{"rendered":"\n<p>Git SCM (Source Code Management, \u010di\u017ee spr\u00e1vca zdrojov\u00e9ho k\u00f3du) je slobodn\u00fd softv\u00e9r s otvoren\u00fdm zdrojov\u00fdm k\u00f3dom, ktor\u00fd sl\u00fa\u017ei na distribuovan\u00fa spr\u00e1vu rev\u00edzi\u00ed zv\u00e4\u010d\u0161a oby\u010dajn\u00fdch textov\u00fdch s\u00faborov (Distributed Version Control System, \u010di\u017ee DVCS). Ak potrebujete jednoduch\u00fd, no pritom sofistikovan\u00fd, r\u00fdchly a spo\u013eahliv\u00fd sp\u00f4sob uchov\u00e1vania verzi\u00ed s\u00faborov offline aj online, Git je pravdepodobne t\u00e1 najlep\u0161ia vo\u013eba pre mal\u00e9 ako aj pre ve\u013ek\u00e9 projekty.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"783\" height=\"587\" src=\"https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo-783x587.png\" alt=\"\" class=\"wp-image-21936\" srcset=\"https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo-783x587.png 783w, https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo-300x225.png 300w, https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo-768x576.png 768w, https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo-50x38.png 50w, https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo-60x45.png 60w, https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo-100x75.png 100w, https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo.png 800w\" sizes=\"auto, (max-width: 783px) 100vw, 783px\" \/><figcaption>Logo syst\u00e9mu Git SCM<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Hist\u00f3ria syst\u00e9mu Git<\/h2>\n\n\n\n<p>Nie je presne ur\u010den\u00e9, \u010do vlastne n\u00e1zov \u201cGit\u201d znamen\u00e1. Priamo v zdrojovom k\u00f3de syst\u00e9mu Git sa v\u0161ak p\u00ed\u0161e, \u017ee si m\u00f4\u017eeme vybra\u0165 pod\u013ea n\u00e1lady: Ide o 3 n\u00e1hodne vybrat\u00e9 p\u00edsmen\u00e1, ktor\u00e9 sa dobre vyslovuj\u00fa, a z\u00e1rove\u0148 v tomto porad\u00ed nie s\u00fa pou\u017e\u00edvan\u00e9 v inom UNIXovom pr\u00edkaze. M\u00f4\u017ee \u00eds\u0165 aj o slangov\u00fd v\u00fdraz pre jednoduch\u00e9ho a\u017e hl\u00fapeho \u010dloveka, ak sme nahnevan\u00ed. Ak naopak m\u00e1me dobr\u00fa n\u00e1ladu, Git m\u00f4\u017ee znamena\u0165 \u201cGlobal Information Tracker\u201d. No a ke\u010f sa n\u00e1m n\u00e1lada v\u00fdrazne zhor\u0161\u00ed, posl\u00fa\u017ei v\u00fdznam, <em>citujeme<\/em>, \u201cGoddamn idiotic truckload of sh*t\u201d.<\/p>\n\n\n\n<p>Autorom p\u00f4vodn\u00e9ho n\u00e1vrhu syst\u00e9mu Git je otec linuxov\u00e9ho jadra Linus Torvalds. Spr\u00e1vu nad cel\u00fdm projektom v\u0161ak u\u017e na za\u010diatku prebral Junio Hamano. Pri v\u00fdvoji linuxov\u00e9ho jadra sa komunita v roku 2002 dohodla, \u017ee ako SCM syst\u00e9m bude pou\u017e\u00edva\u0165 neslobodn\u00fd BitKeeper. S t\u00fdmto syst\u00e9mom (a ani s ostatn\u00fdmi vtedaj\u0161\u00edmi SCM syst\u00e9mami) komunita spokojn\u00e1 nebola. Linus Torvalds preto v roku 2005 navrhol vlastn\u00fd SCM syst\u00e9m na spr\u00e1vu zdrojov\u00e9ho k\u00f3du linuxov\u00e9ho jadra a nazval ho Git.<\/p>\n\n\n\n<p>Dnes sa Git pou\u017e\u00edva ako nep\u00edsan\u00fd \u0161tandard, ak ide o udr\u017eiavanie verzi\u00ed s\u00faborov na jednom po\u010d\u00edta\u010di, \u010di na viacer\u00fdch po\u010d\u00edta\u010doch naraz (napr. cez slu\u017eby ako GitHub alebo GitLab). Vysok\u00fa kvalitu syst\u00e9mu Git jeho pou\u017e\u00edvan\u00edm potvrdzuj\u00fa aj tie najv\u00e4\u010d\u0161ie spolo\u010dnosti ako Adobe, Amazon, Facebook, Google, IBM, Microsoft alebo Netflix. Jeho znalos\u0165 aspo\u0148 na z\u00e1kladnej \u00farovni sa be\u017ene vy\u017eaduje u\u017e od za\u010d\u00ednaj\u00facich program\u00e1torov. Aj ke\u010f Git naj\u010dastej\u0161ie vyu\u017e\u00edvaj\u00fa softv\u00e9rov\u00ed v\u00fdvoj\u00e1ri, pokojne ho m\u00f4\u017ee pou\u017ei\u0165 ktoko\u013evek, kto pracuje s prakticky \u013eubovo\u013en\u00fdmi form\u00e1tmi s\u00faborov.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">V\u00fdhody syst\u00e9mu Git<\/h2>\n\n\n\n<p>Git navrhol tvorca jadra opera\u010dn\u00e9ho syst\u00e9mu Linux, ktor\u00fd spolu s komunitou potreboval, aby SCM sp\u013a\u0148al ur\u010dit\u00e9 z\u00e1kladn\u00e9 n\u00e1le\u017eitosti. Tieto n\u00e1le\u017eitost\u00ed a vlastnosti z nich vypl\u00fdvaj\u00face tvoria v\u00fdhody syst\u00e9mu Git:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>R\u00fdchlos\u0165 a jednoduchos\u0165<\/strong> &#8211; u\u017e od za\u010diatku bol Git navrhnut\u00fd a vyv\u00edjan\u00fd tak, aby zmena obsahu spravovan\u00fdch s\u00faborov aj vo ve\u013ekom projekte zabrala iba nieko\u013eko sek\u00fand. To je dosiahnut\u00e9 samotnou r\u00fdchlos\u0165ou syst\u00e9mu Git, ale tie\u017e jednoduch\u00fdmi pr\u00edkazmi na zap\u00edsanie zmeny obsahu s\u00faborov a \u00fadajov pre SCM.<\/li><li><strong>Neline\u00e1rnos\u0165 a distribut\u00edvnos\u0165<\/strong> &#8211; ke\u010f\u017ee linuxov\u00e9 jadro bolo a je vyv\u00edjan\u00e9 tis\u00edckami program\u00e1torov z cel\u00e9ho sveta, je ve\u013emi d\u00f4le\u017eit\u00e9 zabezpe\u010di\u0165, aby si ka\u017ed\u00fd v\u00fdvoj\u00e1r mohol stiahnu\u0165 kompletn\u00fa hist\u00f3riu zmien (distribuovan\u00fd repozit\u00e1r v prie\u010dinku .git) a pracova\u0165 s \u0148ou offline na svojom po\u010d\u00edta\u010di bez potreby pripojenia na server. Zmeny, ktor\u00e9 v\u00fdvoj\u00e1r vo svojej offline verzii urob\u00ed, po\u0161le do testovacej vetvy projektu (\u010di\u017ee ide o neline\u00e1rny v\u00fdvoj). Neovplyvn\u00ed teda stabilitu hlavnej vetvy (origin\/main), no aj tak po\u0161le svoj n\u00e1vrh na \u00fapravu, ktor\u00fd spr\u00e1vca skontroluje a (ne)prid\u00e1 do hlavnej vetvy.<\/li><li><strong>Bezpe\u010dnos\u0165 a spo\u013eahlivos\u0165<\/strong> &#8211; syst\u00e9m Git ka\u017ed\u00fa zap\u00edsan\u00fa zmenu s\u00faborov (commit) ozna\u010d\u00ed jedine\u010dn\u00fdm identifik\u00e1torom, ktor\u00fd vypo\u010d\u00edta na z\u00e1klade kryptografick\u00e9ho algoritmu SHA-1. Tak\u00fdmto sp\u00f4sobom Git chr\u00e1ni obsah s\u00faborov a hist\u00f3riu zmien pred nechcen\u00fdmi zmenami od autora alebo od tretej strany. V\u010faka syst\u00e9mu Git je teda takmer nemo\u017en\u00e9 urobi\u0165 chybu z nepozornosti, pod vplyvom \u00fanavy, \u010di na z\u00e1klade in\u00fdch extern\u00fdch faktorov.<\/li><li><strong>Flexibilita a akcept\u00e1cia<\/strong> &#8211; syst\u00e9m Git pon\u00faka komplexn\u00fd s\u00fabor profesion\u00e1lnych n\u00e1strojov, v\u010faka ktor\u00fdm je mo\u017en\u00e9 zvl\u00e1dnu\u0165 spr\u00e1vu aj ve\u013emi zlo\u017eit\u00fdch projektov. A ke\u010f\u017ee sa Git osved\u010dil ve\u013ek\u00fdm spolo\u010dnostiam pri d\u00f4le\u017eit\u00fdch projektoch, postupne si z\u00edskal dobr\u00e9 meno a prirodzene sa stal v\u0161eobecne akceptovan\u00fdm n\u00e1strojom. Git v\u0161ak tie\u017e m\u00f4\u017eeme pou\u017ei\u0165 iba lok\u00e1lne na jednom po\u010d\u00edta\u010di, s ktor\u00fdm pracuje len jeden \u010dlovek spravuj\u00faci napr. verzie svojich s\u00fakromn\u00fdch pozn\u00e1mok.<\/li><li><strong>Otvorenos\u0165 a multiplatformnos\u0165<\/strong> &#8211; syst\u00e9m Git je slobodn\u00fd softv\u00e9r s otvoren\u00fdm zdrojov\u00fdm k\u00f3dom, ktor\u00fd vyv\u00edja komunita ve\u013emi sk\u00fasen\u00fdch program\u00e1torov z cel\u00e9ho sveta u\u017e od roku 2005. V\u00fdsledkom je produkt, ktor\u00e9ho kvalitu potvrdzuj\u00fa aj t\u00ed najn\u00e1ro\u010dnej\u0161\u00ed pou\u017e\u00edvatelia na v\u0161etk\u00fdch relevantn\u00fdch opera\u010dn\u00fdch syst\u00e9moch (Windows, MacOS, Linux).<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">In\u0161tal\u00e1cia a pou\u017eitie offline<\/h2>\n\n\n\n<p>Syst\u00e9m Git je mo\u017en\u00e9 nain\u0161talova\u0165 na v\u0161etk\u00fdch relevantn\u00fdch opera\u010dn\u00fdch syst\u00e9moch (Windows, MacOS, Linux), pri\u010dom funguje v\u0161ade rovnako. V tomto n\u00e1vode si uk\u00e1\u017eeme in\u0161tal\u00e1ciu a pou\u017eitie <a href=\"https:\/\/www.websupport.sk\/webhosting\/\">na opera\u010dnom syst\u00e9me \u013eubovo\u013en\u00e9ho hostingu od Websupportu<\/a>, \u010di\u017ee na Ubuntu Linuxe. V\u00e4\u010d\u0161ina linuxov\u00fdch distrib\u00faci\u00ed pon\u00faka Git vo vlastn\u00fdch repozit\u00e1roch, tak\u017ee in\u0161tal\u00e1cia je zv\u00e4\u010d\u0161a ot\u00e1zkou dvoch riadkov:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt update &amp;&amp; sudo apt upgrade -y<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt install -y git<\/pre>\n\n\n\n<p>Pre potreby tohto n\u00e1vodu predpoklad\u00e1me, \u017ee Git pou\u017e\u00edva jeden \u010dlovek, iba na jednom po\u010d\u00edta\u010di a nepotrebuje Git prip\u00e1ja\u0165 do siete. M\u00f4\u017ee teda \u00eds\u0165 napr. o \u0161tudenta, ktor\u00fd sa rozhodol nau\u010di\u0165 sa Git na pr\u00edklade z re\u00e1lneho \u017eivota povedzme pri p\u00edsan\u00ed pozn\u00e1mok. V domovskom prie\u010dinku si vytvor\u00edme prie\u010dinok s n\u00e1zvom <code>git-test<\/code> a presunieme sa do\u0148:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mkdir ~\/git-test<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">cd&nbsp; ~\/git-test<\/pre>\n\n\n\n<p>N\u00e1\u0161 \u0161tudent sa rozhodol, \u017ee si prv\u00e9 pozn\u00e1mky z predn\u00e1\u0161ky zap\u00ed\u0161e nar\u00fdchlo do oby\u010dajn\u00e9ho textov\u00e9ho s\u00faboru, ktor\u00fd nazve <code>poznamky.txt<\/code>. Vytvor\u00edme si teda s\u00fabor s n\u00e1zvom poznamky.txt a zap\u00ed\u0161eme do\u0148 prv\u00fd riadok \u201cPozn\u00e1mky z predn\u00e1\u0161ky\u201d:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano ~\/git-test\/poznamky.txt<\/pre>\n\n\n\n<p>Vlo\u017e\u00edme skop\u00edrovan\u00fd obsah, ulo\u017e\u00edme pomocou kl\u00e1vesovej skratky <code>Ctrl + X<\/code> a n\u00e1sledne stla\u010den\u00edm kl\u00e1vesu <code>y<\/code> a potvrden\u00edm kl\u00e1vesom <code>Enter<\/code>.<\/p>\n\n\n\n<p>Po\u010das predn\u00e1\u0161ky si n\u00e1\u0161 \u0161tudent zap\u00edsal nieko\u013eko d\u00f4le\u017eit\u00fdch bodov, ktor\u00e9 potrebuje nesk\u00f4r na\u0161tudova\u0165 podrobnej\u0161ie. Doma sa teda rozhodne, \u017ee pozn\u00e1mky roz\u0161\u00edri, no z\u00e1rove\u0148 si chce ponecha\u0165 aj t\u00fato stru\u010dn\u00fa osnovu. V prie\u010dinku <code>~\/git-test<\/code> preto zachyt\u00ed aktu\u00e1lny stav pozn\u00e1mok pomocou n\u00e1stroja Git. Najsk\u00f4r v\u0161ak mus\u00ed nastavi\u0165 pou\u017e\u00edvate\u013esk\u00e9 meno (<code>user.name<\/code>) a e-mailov\u00fa adresu (<code>user.email<\/code>), ktor\u00fdmi sa bude podpisova\u0165 ka\u017ed\u00e1 ulo\u017een\u00e1 zmena:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git config --global user.name \"N\u00e1\u0161 \u0160tudent\"<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">git config --global user.email \"nas.student@websupport.sk\"<\/pre>\n\n\n\n<p>Teraz n\u00e1\u0161 \u0161tudent n\u00e1stroju Git povie, \u017ee si m\u00e1 v prie\u010dinku <code>~\/git-test<\/code> vytvori\u0165 repozit\u00e1r (skryt\u00fd prie\u010dinok s n\u00e1zvom <code>.git<\/code>), do ktor\u00e9ho si bude zaznamen\u00e1va\u0165 jednotliv\u00e9 zmeny v pozn\u00e1mkach:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git init<\/pre>\n\n\n\n<p>Over\u00ed si, ako Git vid\u00ed obsah prie\u010dinka s pozn\u00e1mkami:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git status<\/pre>\n\n\n\n<p>Zist\u00ed, \u017ee Git s\u00edce s\u00fabor <code>poznamky.txt<\/code> vid\u00ed, ale nesleduje zmeny v \u0148om, preto ho zaradil \u010dervenou farbou do sekcie \u201cUntracked files\u201d (nesledovan\u00e9 s\u00fabory). Aby Git zmeny v obsahu s\u00faboru za\u010dal aj sledova\u0165, potrebujeme n\u00e1stroju Git prik\u00e1za\u0165, aby si ho pridal medzi sledovan\u00e9 s\u00fabory (<code>add<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git add poznamky.txt<\/pre>\n\n\n\n<p>Op\u00e4\u0165 si over\u00ed, ako Git vid\u00ed obsah prie\u010dinka s pozn\u00e1mkami a zist\u00ed, \u017ee s\u00fabor <code>poznamky.txt<\/code> je u\u017e zaraden\u00fd zelenou farbou do sekcie \u201cChanges to be committed\u201d (zmeny na ulo\u017eenie):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git status<\/pre>\n\n\n\n<p>Teraz u\u017e m\u00f4\u017ee n\u00e1stroju Git prik\u00e1za\u0165, aby si ulo\u017eil (<code>commit<\/code>) aktu\u00e1lny stav pozn\u00e1mok do repozit\u00e1ra:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git commit -am \"Prv\u00e1 verzia pozn\u00e1mok\"<\/pre>\n\n\n\n<p>Over\u00ed si, ako presne sa aktu\u00e1lny stav pozn\u00e1mok zap\u00edsal (<code>log<\/code>) a \u010do sa zmenilo v jednotliv\u00fdch s\u00faboroch (-p):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git log -p<\/pre>\n\n\n\n<p>Zist\u00ed, \u017ee prv\u00fd riadok (hned\u00fdm p\u00edsmom) za\u010d\u00edna slovom <code>commit<\/code> a nasleduje unik\u00e1tny textov\u00fd re\u0165azec, ktor\u00fd m\u00f4\u017eeme vn\u00edma\u0165 ako rodn\u00e9 \u010d\u00edslo ulo\u017eenej zmeny (jednozna\u010dne ju identifikuje). Aj v\u010faka tomuto identifik\u00e1toru Git garantuje vysok\u00fa mieru bezpe\u010dnosti a spo\u013eahlivosti do repozit\u00e1ra ukladan\u00fdch \u00fadajov. \u010eal\u0161ie riadky obsahuj\u00fa meno pou\u017e\u00edvate\u013ea a jeho e-mailov\u00fa adresu, ni\u017e\u0161ie d\u00e1tum a \u010das ulo\u017eenej zmeny a nakoniec stru\u010dn\u00fd popis ulo\u017eenej zmeny. V\u00fdpis ukon\u010d\u00ed mal\u00fdm p\u00edsmenom <code>q<\/code> (ako quit).<\/p>\n\n\n\n<p>Teraz si n\u00e1\u0161 \u0161tudent stru\u010dn\u00e9 pozn\u00e1mky z predn\u00e1\u0161ky roz\u0161\u00edri. Stihne v\u0161ak bli\u017e\u0161ie pop\u00edsa\u0165 iba prv\u00fd bod, ostatn\u00e9 si nech\u00e1 nabud\u00face. Ulo\u017e\u00ed si dop\u00edsan\u00fd text do s\u00faboru <code>poznamky.txt<\/code> a z\u00e1rove\u0148 mu napadne nieko\u013eko ot\u00e1zok, na ktor\u00e9 nevie n\u00e1js\u0165 odpovede. Tie si zap\u00ed\u0161e do s\u00faboru <code>otazky.txt<\/code>, aby sa ich mohol op\u00fdta\u0165 v \u0161kole:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano ~\/git-test\/otazky.txt<\/pre>\n\n\n\n<p>Vlo\u017e\u00edme skop\u00edrovan\u00fd obsah, ulo\u017e\u00edme pomocou kl\u00e1vesovej skratky <code>Ctrl + X<\/code> a n\u00e1sledne stla\u010den\u00edm kl\u00e1vesu <code>y<\/code> a potvrden\u00edm kl\u00e1vesom <code>Enter<\/code>.<\/p>\n\n\n\n<p>Aby Git novovytvoren\u00fd s\u00fabor <code>otazky.txt<\/code> za\u010dal sledova\u0165 a uklada\u0165 zmeny v jeho obsahu, mus\u00ed ho n\u00e1\u0161 \u0161tudent prida\u0165 (<code>add<\/code>) medzi sledovan\u00e9 s\u00fabory:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git add otazky.txt<\/pre>\n\n\n\n<p>Teraz n\u00e1\u0161 \u0161tudent zaznamen\u00e1 vytvoren\u00e9 zmeny do repozit\u00e1ra syst\u00e9mu Git (<code>commit<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git commit -am \"Roz\u0161\u00edrenie prv\u00e9ho bodu pozn\u00e1mok a pridanie ot\u00e1zok\"<\/pre>\n\n\n\n<p>Takto si n\u00e1\u0161 \u0161tudent uchoval u\u017e 2 verzie pozn\u00e1mok, ku ktor\u00fdm sa m\u00f4\u017ee kedyko\u013evek vr\u00e1ti\u0165 bez toho, aby musel otv\u00e1ra\u0165 a preh\u013ead\u00e1va\u0165 jednotliv\u00e9 s\u00fabory. Sta\u010d\u00ed si necha\u0165 vyp\u00edsa\u0165 zoznam ulo\u017een\u00fdch zmien (prv\u00fd riadok) a n\u00e1sledne si vybra\u0165 ozna\u010denie tej ulo\u017eenej zmeny, ku ktorej sa chce vr\u00e1ti\u0165 (druh\u00fd riadok):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git log -p<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">git reset --hard 4fc055b580fcd4242a64d8b92725c4c01efdb64a<\/pre>\n\n\n\n<p>V druhom riadku n\u00e1\u0161 \u0161tudent zadal textov\u00fd re\u0165azec <code>4fc055b580fcd4242a64d8b92725c4c01efdb64a<\/code>, ktor\u00fd jednozna\u010dne identifikuje prv\u00fa ulo\u017een\u00fa zmenu s koment\u00e1rom <code>\"Prv\u00e1 verzia pozn\u00e1mok\"<\/code>. Vo va\u0161om pr\u00edpade sa s najv\u00e4\u010d\u0161ou pravdepodobnos\u0165ou bude l\u00ed\u0161i\u0165. V ka\u017edom pr\u00edpade po spusten\u00ed pr\u00edkazu z druh\u00e9ho riadku n\u00e1\u0161 \u0161tudent zistil, \u017ee s\u00fabor <code>poznamky.txt<\/code> obsahuje iba stru\u010dn\u00e9 body zap\u00edsan\u00e9 na predn\u00e1\u0161ke a s\u00fabor <code>otazky.txt<\/code> zmizol, preto\u017ee vtedy e\u0161te neexistoval.<\/p>\n\n\n\n<p>Aby sa n\u00e1\u0161 \u0161tudent mohol vr\u00e1ti\u0165 sp\u00e4\u0165 k roz\u0161\u00edren\u00fdm pozn\u00e1mkam a k ot\u00e1zkam, sta\u010d\u00ed sa v n\u00e1stroji Git vr\u00e1ti\u0165 k druhej zap\u00edsanej zmene s koment\u00e1rom <code>\"Roz\u0161\u00edrenie prv\u00e9ho bodu pozn\u00e1mok a pridanie ot\u00e1zok\"<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git reset --hard 7e1922cca9ffc9715f2302d798c71e36c86b56c6<\/pre>\n\n\n\n<p><code>Textov\u00fd re\u0165azec <\/code>7e1922cca9ffc9715f2302d798c71e36c86b56c6, jednozna\u010dne identifikuj\u00faci druh\u00fa ulo\u017een\u00fa zmenu, sa aj v tomto pr\u00edpade u v\u00e1s pravdepodobne bude l\u00ed\u0161i\u0165.<\/p>\n\n\n\n<p>Pochopite\u013ene, n\u00e1\u0161 \u0161tudent si m\u00f4\u017ee tak\u00fdchto zmien ulo\u017ei\u0165 \u013eubovo\u013en\u00e9 mno\u017estvo, pri\u010dom sa ku ktorejko\u013evek m\u00f4\u017ee kedyko\u013evek vr\u00e1ti\u0165. Cel\u00fd repozit\u00e1r so v\u0161etk\u00fdmi ulo\u017een\u00fdmi zmenami sa zatia\u013e nach\u00e1dza iba v jeho po\u010d\u00edta\u010di offline. V\u010faka slu\u017eb\u00e1m ako GitHub alebo GitLab si v\u0161ak n\u00e1\u0161 \u0161tudent m\u00f4\u017ee repozit\u00e1r z\u00e1lohova\u0165 aj online, a to verejne alebo s\u00fakromne. M\u00f4\u017ee tak na pozn\u00e1mkach spolupracova\u0165 so spolu\u017eiakmi alebo s k\u00fdmko\u013evek, kto bude ma\u0165 pr\u00edstup k jeho online repozit\u00e1ru. O tom v\u0161ak u\u017e bude druh\u00e1 \u010das\u0165 tohto seri\u00e1lu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zhrnutie<\/h2>\n\n\n\n<p>V prvej \u010dasti seri\u00e1lu o syst\u00e9me Git sme stru\u010dne pop\u00edsali hist\u00f3riu v\u00fdvoja a vyzdvihli sme jeho v\u00fdhody. \u010ealej sme Git nain\u0161talovali a vysk\u00fa\u0161ali sme pou\u017eitie v praxi. V\u0161etko prebiehalo offline na jednom po\u010d\u00edta\u010di. <a href=\"https:\/\/www.websupport.sk\/podpora\/kb\/git-pouzitie-online\/\">V druhej \u010dasti seri\u00e1lu<\/a> sa pozrieme na pou\u017eitie n\u00e1stroja Git v online prostred\u00ed ur\u010denom na spolupr\u00e1cu.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Git SCM (Source Code Management, \u010di\u017ee spr\u00e1vca zdrojov\u00e9ho k\u00f3du) je slobodn\u00fd softv\u00e9r s otvoren\u00fdm zdrojov\u00fdm k\u00f3dom, ktor\u00fd sl\u00fa\u017ei na distribuovan\u00fa spr\u00e1vu rev\u00edzi\u00ed zv\u00e4\u010d\u0161a oby\u010dajn\u00fdch textov\u00fdch s\u00faborov (Distributed Version Control System, \u010di\u017ee DVCS). Ak potrebujete jednoduch\u00fd, no pritom sofistikovan\u00fd, r\u00fdchly a spo\u013eahliv\u00fd sp\u00f4sob uchov\u00e1vania verzi\u00ed s\u00faborov offline aj online, Git je&#8230;<\/p>\n","protected":false},"author":28,"template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[459],"ht-kb-tag":[336,462,330,381,92,198],"class_list":["post-21930","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-git","ht_kb_tag-cli","ht_kb_tag-git","ht_kb_tag-linux","ht_kb_tag-server","ht_kb_tag-shell","ht_kb_tag-ubuntu"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Git - hist\u00f3ria, in\u0161tal\u00e1cia a pou\u017eitie offline - Websupport centrum podpory<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/\" \/>\n<meta property=\"og:locale\" content=\"sk_SK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Git - hist\u00f3ria, in\u0161tal\u00e1cia a pou\u017eitie offline - Websupport centrum podpory\" \/>\n<meta property=\"og:description\" content=\"Git SCM (Source Code Management, \u010di\u017ee spr\u00e1vca zdrojov\u00e9ho k\u00f3du) je slobodn\u00fd softv\u00e9r s otvoren\u00fdm zdrojov\u00fdm k\u00f3dom, ktor\u00fd sl\u00fa\u017ei na distribuovan\u00fa spr\u00e1vu rev\u00edzi\u00ed zv\u00e4\u010d\u0161a oby\u010dajn\u00fdch textov\u00fdch s\u00faborov (Distributed Version Control System, \u010di\u017ee DVCS). Ak potrebujete jednoduch\u00fd, no pritom sofistikovan\u00fd, r\u00fdchly a spo\u013eahliv\u00fd sp\u00f4sob uchov\u00e1vania verzi\u00ed s\u00faborov offline aj online, Git je...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/\" \/>\n<meta property=\"og:site_name\" content=\"Websupport centrum podpory\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-22T13:55:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo-783x587.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Predpokladan\u00fd \u010das \u010d\u00edtania\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 min\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/git-historia-instalacia-a-pouzitie-offline\\\/\",\"url\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/git-historia-instalacia-a-pouzitie-offline\\\/\",\"name\":\"Git - hist\u00f3ria, in\u0161tal\u00e1cia a pou\u017eitie offline - Websupport centrum podpory\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/git-historia-instalacia-a-pouzitie-offline\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/git-historia-instalacia-a-pouzitie-offline\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/app\\\/uploads\\\/sites\\\/2\\\/2022\\\/03\\\/git-logo-783x587.png\",\"datePublished\":\"2022-03-22T13:41:38+00:00\",\"dateModified\":\"2022-03-22T13:55:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/git-historia-instalacia-a-pouzitie-offline\\\/#breadcrumb\"},\"inLanguage\":\"sk-SK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/git-historia-instalacia-a-pouzitie-offline\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sk-SK\",\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/git-historia-instalacia-a-pouzitie-offline\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/app\\\/uploads\\\/sites\\\/2\\\/2022\\\/03\\\/git-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/app\\\/uploads\\\/sites\\\/2\\\/2022\\\/03\\\/git-logo.png\",\"width\":800,\"height\":600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/git-historia-instalacia-a-pouzitie-offline\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Git &#8211; hist\u00f3ria, in\u0161tal\u00e1cia a pou\u017eitie offline\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/#website\",\"url\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/\",\"name\":\"Websupport centrum podpory\",\"description\":\"Radi v\u00e1m pom\u00f4\u017eeme s va\u0161im probl\u00e9mom\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sk-SK\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Git - hist\u00f3ria, in\u0161tal\u00e1cia a pou\u017eitie offline - Websupport centrum podpory","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/","og_locale":"sk_SK","og_type":"article","og_title":"Git - hist\u00f3ria, in\u0161tal\u00e1cia a pou\u017eitie offline - Websupport centrum podpory","og_description":"Git SCM (Source Code Management, \u010di\u017ee spr\u00e1vca zdrojov\u00e9ho k\u00f3du) je slobodn\u00fd softv\u00e9r s otvoren\u00fdm zdrojov\u00fdm k\u00f3dom, ktor\u00fd sl\u00fa\u017ei na distribuovan\u00fa spr\u00e1vu rev\u00edzi\u00ed zv\u00e4\u010d\u0161a oby\u010dajn\u00fdch textov\u00fdch s\u00faborov (Distributed Version Control System, \u010di\u017ee DVCS). Ak potrebujete jednoduch\u00fd, no pritom sofistikovan\u00fd, r\u00fdchly a spo\u013eahliv\u00fd sp\u00f4sob uchov\u00e1vania verzi\u00ed s\u00faborov offline aj online, Git je...","og_url":"https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/","og_site_name":"Websupport centrum podpory","article_modified_time":"2022-03-22T13:55:46+00:00","og_image":[{"url":"https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo-783x587.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Predpokladan\u00fd \u010das \u010d\u00edtania":"9 min\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/","url":"https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/","name":"Git - hist\u00f3ria, in\u0161tal\u00e1cia a pou\u017eitie offline - Websupport centrum podpory","isPartOf":{"@id":"https:\/\/www.websupport.sk\/podpora\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/#primaryimage"},"image":{"@id":"https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/#primaryimage"},"thumbnailUrl":"https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo-783x587.png","datePublished":"2022-03-22T13:41:38+00:00","dateModified":"2022-03-22T13:55:46+00:00","breadcrumb":{"@id":"https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/#breadcrumb"},"inLanguage":"sk-SK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/"]}]},{"@type":"ImageObject","inLanguage":"sk-SK","@id":"https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/#primaryimage","url":"https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo.png","contentUrl":"https:\/\/www.websupport.sk\/podpora\/app\/uploads\/sites\/2\/2022\/03\/git-logo.png","width":800,"height":600},{"@type":"BreadcrumbList","@id":"https:\/\/www.websupport.sk\/podpora\/kb\/git-historia-instalacia-a-pouzitie-offline\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.websupport.sk\/podpora\/"},{"@type":"ListItem","position":2,"name":"Git &#8211; hist\u00f3ria, in\u0161tal\u00e1cia a pou\u017eitie offline"}]},{"@type":"WebSite","@id":"https:\/\/www.websupport.sk\/podpora\/#website","url":"https:\/\/www.websupport.sk\/podpora\/","name":"Websupport centrum podpory","description":"Radi v\u00e1m pom\u00f4\u017eeme s va\u0161im probl\u00e9mom","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.websupport.sk\/podpora\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sk-SK"}]}},"_links":{"self":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb\/21930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/users\/28"}],"version-history":[{"count":3,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb\/21930\/revisions"}],"predecessor-version":[{"id":21963,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb\/21930\/revisions\/21963"}],"wp:attachment":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/media?parent=21930"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb-category?post=21930"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb-tag?post=21930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}