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.