Když se začnete učit a používat Git, narazíte na běžnou situaci, kdy musíte změnit větve.
A tady pro vás mohou být věci trochu matoucí. Pokud se podíváte na to, jak přepínat větve v git, narazíte na několik příkladů použití git switch a příklady použití git checkout.
Příkaz Git checkout | Příkaz Git switch | Popis |
---|---|---|
git checkout my-branch | git switch my-branch | Přepnout na větev moje větev |
git checkout -b moje-větev | git switch -c moje-větev | Vytvořit a přepnout na moji pobočku |
Jaký je tedy rozdíl mezi git switch a git checkout? Pokud lze oba použít pro přepínání větví, proč existují dva příkazy pro stejný účel? Dovolte mi to vysvětlit.
Rozdíl mezi git checkout a git switch
Tady je ta věc. Git checkout je starý příkaz, který se používal k vytváření a přepínání větví. Lze jej také použít k obnovení změn z určitého potvrzení. Ale git checkout umí víc než to. Umožňuje vám kopírovat soubory z libovolné větve nebo odevzdávat přímo do vašeho pracovního stromu bez přepínání větví.
Jak poznamenává Dan Fabulich, git checkout dělá tři věci:
- přepnout větve
- zkopírujte soubory z plochy do pracovního stromu
- zkopírujte soubory ze stromu do pracovního stromu
Pokud tomu nerozumíte, nevadí. Jen si pamatujte, že git checkout dělá víc než jen jednoduché přepínání větví a další funkce začaly vytvářet zmatek.
A proto s vydáním Git 2.23 jeho vývojáři představili dva nové příkazy git:git switch
a git restore
.
Myšlenkou tohoto kroku je umožnit lidem používat git switch
pro přepínání větví a obnovení git pro vrácení změn z odevzdání. Současně git checkout
zůstává zde pro pokročilé možnosti pro řešení stromové struktury.
Který byste měli použít? Git checkout nebo git switch?
Pokud musíte přepínat větve, použijte místo příkazu git checkout příkaz git switch. Proč? Protože byl vytvořen pro tento konkrétní úkol. Pro nové uživatele Git je snazší zapamatovat si git switch
je pro přepínání větví, git restore
slouží k obnovení potvrzení.
Je tedy dobrým zvykem nahradit funkci vytváření větví a přepínání funkcí git checkout příkazem git switch.
Doufám, že už máte jasno v používání git switch a checkout. Pokud chcete něco přidat, použijte sekci komentářů.