GNU/Linux >> Znalost Linux >  >> Linux

Jaký je rozdíl mezi Git Switch a Checkout?

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ářů.


Linux
  1. Rozdíl mezi [[ $a ==Z* ]] a [ $a ==Z* ]?

  2. Jaký je rozdíl mezi mutexem a kritickou sekcí?

  3. Jaký je rozdíl mezi fsck a e2fsck?

  1. Jaký je rozdíl mezi adduser a useradd?

  2. Jaký je rozdíl mezi $(CC) a $CC?

  3. Jaký je rozdíl mezi unlink a rm?

  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. Jaký je rozdíl mezi Redhat a centOS?

  3. Jaký je rozdíl mezi trasou a ip trasou?