GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la differenza tra Git Switch e Checkout?

Quando inizi a imparare e a usare Git, ti imbatterai nella situazione comune in cui devi cambiare branch.

E qui, le cose potrebbero diventare un po' confuse per te. Se cerchi come cambiare branch in git, ti imbatterai in alcuni esempi in cui viene utilizzato git switch e in alcuni esempi in cui viene utilizzato git checkout.

Comando di verifica Git Comando Git switch Descrizione
git checkout my-branch git cambia il mio ramo Passa a branch my-branch
git checkout -b my-branch git switch -c my-branch Crea e passa a my-branch

Quindi, qual è la differenza tra git switch e git checkout? Se entrambi possono essere usati per cambiare ramo, perché ci sono due comandi per lo stesso scopo? Mi spiego.

Differenza tra git checkout e git switch

Ecco la cosa. Git checkout è il vecchio comando utilizzato per creare e cambiare branch. Può anche essere utilizzato per ripristinare le modifiche da un determinato commit. Ma git checkout fa di più. Ti consente di copiare file da qualsiasi ramo o eseguire il commit direttamente nel tuo albero di lavoro senza cambiare ramo.

Come osserva Dan Fabulich, git checkout fa tre cose:

  • cambia ramo
  • copia i file dallo stage all'albero di lavoro
  • copia i file da un albero all'albero di lavoro

Se non lo capisci, va bene. Ricorda solo che git checkout fa molto di più del semplice cambio di ramo e le funzionalità aggiuntive hanno iniziato a creare confusione.

E quindi, con il rilascio di Git 2.23, i suoi sviluppatori hanno introdotto due nuovi comandi git:git switch e git restore .

L'idea alla base di questa mossa è consentire alle persone di utilizzare git switch per cambiare branch e git restore per annullare le modifiche da un commit. Allo stesso tempo git checkout rimane lì per le opzioni avanzate per affrontare il tree-ish.

Quale dovresti usare? Git checkout o git switch?

Se devi cambiare ramo, usa il comando git switch invece di git checkout. Come mai? Perché è stato creato per questo compito specifico. Per i nuovi utenti Git, è più facile ricordare che git switch serve per cambiare ramo, git restore serve per ripristinare un commit.

Quindi, è una buona pratica sostituire la funzionalità di creazione del ramo e commutazione di git checkout con il comando git switch.

Spero che tu sia chiaro sull'utilizzo di git switch e checkout ora. Se hai qualcosa da aggiungere, utilizza la sezione commenti.


Linux
  1. Qual è la differenza tra InnoDB e MyISAM?

  2. La differenza tra [[ $a ==Z* ]] e [ $a ==Z* ]?

  3. Qual è la differenza tra mutex e sezione critica?

  4. Qual è la differenza tra fsck ed e2fsck?

  5. Qual è la differenza tra $(CC) e $CC?

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra Login e Non-Login Shell

Qual è la differenza tra il comando apt e apt-get?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?

Qual è la differenza tra unlink e rm?