V predchádzajúcej lekcii sme si pomocou git branch nazov-vetvy vytvorili novú vetvu, no zostali sme aj naďalej na
pôvodnej vetve main. Aby sme sa na novú vetvu vedeli reálne presunúť, použijeme príkaz git checkout.
HEAD?Predtým, ako sa pozrieme na samotný checkout, je dobré vedieť, čo je to HEAD. HEAD je vlastne len ukazovateľ,
ktorý hovorí Gitu (a nám), na ktorej vetve a na ktorom commite sa práve nachádzame. Vždy, keď spravíš nový commit,
HEAD (spolu s vetvou, na ktorej sa nachádzaš) sa automaticky posunie na tento nový commit.
Keď teda hovoríme o “prepnutí” na inú vetvu, v skutočnosti hovoríme o tom, že posunieme HEAD tak, aby ukazoval
na inú vetvu/commit.
git checkout nazov-vetvy
Tento príkaz:
HEAD (a teda aj nás) na vetvu nazov-vetvyAk si teraz spustíš git branch, hviezdička už bude pri novej vetve:
main
* nazov-vetvy
git checkout -bKeďže postupnosť “vytvor vetvu a hneď sa na ňu presuň” je extrémne častá, existuje pre ňu skratka - prepínač -b:
git checkout -b nova-vetva
Tento jediný príkaz nahrádza dvojicu:
git branch nova-vetva
git checkout nova-vetva
Note:
-bje skratka pre branch. Ak sa pokúsiš takto vytvoriť vetvu, ktorá už existuje, Git ti to nedovolí (v takom prípade použi obyčajnýgit checkout nazov-vetvy, bez-b).
git switchgit checkout je v Gite veľmi starý príkaz, ktorý okrem prepínania vetiev vie robiť aj úplne iné veci (napríklad
vracať zmeny v súboroch). Kvôli tejto “preťaženosti” bol neskôr pridaný nový, jednoduchší príkaz určený výlučne
na prácu s vetvami - git switch.
git switch nazov-vetvy
A rovnako existuje aj skratka na vytvorenie a rovnaké prepnutie (namiesto -b sa tu používa -c, ako create):
git switch -c nova-vetva
Tip: Obidva prístupy (
git checkoutajgit switch) fungujú a robia to isté.git switchje však čitateľnejší a menej náchylný na omyl, takže ak máš na výber, odporúčam používať práve jeho.git checkoutsa napriek tomu stále bežne používa (a uvidíš ho aj v mnohých starších návodoch), preto je dobré poznať oba.