Začínám s Gitem…

Git? Sofistikovaný systém verzování nejen zdrojového kódu, který je pravděpodobně příčinou plešatosti mnoha IT hlav. Rozhodl jsem se ho konečně pochopit, nakolik jen mozeček grafika dovolí.

Že to nebude nejlehčí mi došlo po shlédnutí přednášky Linuse Torvaldse, který je kromě Gitu autorem spousty perel

I decided I can write something better than anything out there in two weeks.

And I was right.

Autorovu svéráznost lze však přejít, pokud takový nebude i nástroj z jeho dílny.

Terminál, GUI a zase zpět

Git je v základu čistě textovou záležitostí, což bylo ze začátku velkou překážkou. cd, ls nebo sudo sice použiji bez okolků, ale svěřit desítky hodin práce hned z kraje příkazové řádce? Selhávající dosavadní „verzování“ pomocí duplikace složek a označení časovým kódem (180814 1450180814 1525 → ☠️) mě však dotlačilo k jeho vyzkoušení.

Po mnoha hodinách pokusomylů nad dokumentací jsem mu ale dal vale. Na rozjezd potřebuji klikací rozhraní.

K základnímu porozumění velmi pomohl Fork a bokem ve Finderu otevřená složka s projektem, abych viděl, co se děje na úrovni souborů. Po pár commitech (uživatelem uložené body v historii) a skákání mezi nimi funkcí checkout to tak nějak začalo dávat smysl. Rychle jsem chytil, kdy použít ten a ten čudlík, ale zase jsem neměl tušení, co se doopravdy děje na pozadí a co je vůbec možné. Stejného cíle lze totiž často dosáhnout několika způsoby. Branch, checkout, merge nebo rebase jsou bohužel jen některá z laikovi nicneříkajích slov.

Slepě si zahrávat s vypoceným kódem se mi nechtělo, a tak nastala vhodná doba na druhý pokus s příkazy. Tentokrát jsem to vzal od podlahy a s drobným základem v kapse šel na (překvapivě intenzivní) kurz objasňující základy i pokročilejší koncepty, který se odehrával ve firemní Akademii. Lze ho doporučit i ne zcela technickým jedincům, nicméně jít na něj neposkvrněn předchozími pokusy, asi bych hodně plaval.

Jak tedy začít

Zároveň mi na kurzu došlo, že původně plánovaná minisérie popisující cestu za poznáním, jíž měl být tento článek úvodem, je zbytečná. Podkladů existuje již teď dostatek a pokročilejší operace je lepší učit se za pochodu. Pokud také máte strach, že to rozbijete, stačí se dle mého pro začátek omezit na pět příkazů:

  • fetch (stáhne změny z remotu, ale nezanese je do projektu),
  • pull (stáhne změny a rovnou je zanese do projektu, což může způsobit problémy),
  • push (nahraje změny na remote),
  • commit (uloží změny),
  • revert (umí zvrátit vybrané změny).

Zbývá již jen odkázat na pár mých poznámek k obskurnějším situacím, obecně užitečná místa a popřát hodně štěstí!


Vlastní poznámky

Odkazy