Git Checkout (Italiano)

Questa pagina è un esame del comando git checkout. Tratterà esempi di utilizzo e casi limite. In termini di Git, un “checkout” è l’atto di passare da una versione all’altra di un’entità di destinazione. Il comando git checkout opera su tre entità distinte: file, commit e branch. Oltre alla definizione di “checkout”, la frase “check out” è comunemente usata per implicare l’atto di eseguire il comando git checkout. Nell’argomento Annullamento modifiche, abbiamo visto come git checkout può essere utilizzato per visualizzare i vecchi commit. Il focus per la maggior parte di questo documento saranno le operazioni di checkout sui branch.

Il check out dei branch è simile al check out dei vecchi commit e file in quanto la directory di lavoro viene aggiornata per corrispondere al branch / revisione selezionato; tuttavia, le nuove modifiche vengono salvate nella cronologia del progetto, ovvero non è un’operazione di sola lettura.

Estrazione di rami

Il git checkout ti consente di navigare tra i rami creati da git branch. Il check out di un ramo aggiorna i file nella directory di lavoro in modo che corrispondano alla versione memorizzata in quel ramo e dice a Git di registrare tutti i nuovi commit su quel ramo. Consideralo un modo per selezionare la linea di sviluppo su cui stai lavorando.

Avere un ramo dedicato per ogni nuova funzionalità è un cambiamento radicale da un flusso di lavoro SVN tradizionale. Rende incredibilmente facile provare nuovi esperimenti senza il timore di distruggere le funzionalità esistenti e consente di lavorare su molte funzionalità non correlate contemporaneamente. Inoltre, i rami facilitano anche diversi flussi di lavoro collaborativi.

Il comando git checkout può essere occasionalmente confuso con git clone. La differenza tra i due comandi è che clone funziona per recuperare codice da un repository remoto, in alternativa checkout funziona per passare da una versione di codice già presente al sistema locale.

Utilizzo: rami esistenti

Supponendo che il repository in cui stai lavorando contenga rami preesistenti, puoi passare da un ramo all’altro utilizzando git checkout. Per scoprire quali rami sono disponibili e qual è il nome del ramo corrente, eseguire git branch.

 

L’esempio sopra mostra come visualizzare un elenco di rami disponibili eseguendo il git branch e passa a un ramo specificato, in questo caso, feature_inprogress_branch.

Nuovi rami

Git checkout funziona mano nella mano con git branch. Il comando git branch può essere utilizzato per creare un nuovo ramo. Quando desideri avviare una nuova funzione, crei un nuovo ramo utilizzando git branch new_branch. Una volta creato, puoi utilizzare git checkout new_branch per passare a quel ramo. Inoltre, il comando git checkout accetta un argomento -b che funge da comodo metodo che creerà il nuovo ramo e vi passerà immediatamente. Puoi lavorare su più funzionalità in un unico repository passando da una all’altra con git checkout.

L’esempio precedente crea ed estrae simultaneamente . L’opzione -b è un flag di convenienza che dice a Git di eseguire git branch prima di eseguire git checkout .

Per impostazione predefinita, git checkout -b baserà new-branch HEAD. È possibile passare un parametro di ramo aggiuntivo facoltativo a git checkout. Nell’esempio precedente, viene passato che quindi basa new-branch su existing-branch anziché l’attuale HEAD.

Cambio di ramo

Il cambio di ramo è un’operazione semplice. L’esecuzione di quanto segue indicherà HEAD alla punta di .

Git tiene traccia della cronologia delle operazioni di checkout nel reflog. Puoi eseguire git reflog per visualizzare la cronologia.

Git Checkout a Remote Branch

Quando si collabora con un team è comune utilizzare il telecomando repository. Questi repository possono essere ospitati e condivisi o possono essere la copia locale di un altro collega. Ogni repository remoto conterrà il proprio insieme di rami. Per effettuare il checkout di un ramo remoto devi prima recuperare il contenuto del ramo.

Nelle versioni moderne di Git, puoi quindi effettuare il checkout del ramo remoto come un ramo locale.

Le versioni precedenti di Git richiedono la creazione di un nuovo ramo basato su remote.

Inoltre puoi controllare un nuovo ramo locale e reimpostarlo all’ultimo commit dei rami remoti.

 

TESTE indipendenti

Ora che abbiamo visto i tre usi principali di git checkout sui rami, è importante discutere di "detached HEAD” state. Ricorda che HEAD è il modo in cui Git fa riferimento all’istantanea corrente. Internamente, git checkout aggiorna semplicemente il HEAD in modo che punti al ramo specificato o al commit. Quando punta a un ramo, Git non si lamenta, ma quando esegui il check out di un commit, passa allo stato "detached HEAD”.

Questo è un avviso che ti dice che tutto ciò che stai facendo è “staccato” dal resto dello sviluppo del tuo progetto. Se se dovessi iniziare a sviluppare una funzione mentre ti trovi in uno stato HEAD, non ci sarebbe nessun ramo che ti permetta di tornare indietro t o esso. Quando inevitabilmente controlli un altro ramo (ad esempio, per unire la tua funzione in), non ci sarebbe modo di fare riferimento alla tua funzione:

Il punto è, il tuo sviluppo dovrebbe sempre avvenire su un ramo, mai su un HEAD distaccato. Questo ti assicura di avere sempre un riferimento ai tuoi nuovi commit. Tuttavia, se stai solo guardando un vecchio commit, non importa se ti trovi in uno stato HEAD distaccato o meno.

Riepilogo

Questa pagina si concentrava sull’utilizzo del comando git checkout quando si cambiano i rami. Riassumendo, git checkout, se utilizzato sui rami, altera il target del HEAD rif. Può essere utilizzato per creare rami, cambiare ramo e controllare rami remoti. Il comando git checkout è uno strumento essenziale per il funzionamento standard di Git. È una controparte di git merge. I comandi git checkout e git merge sono strumenti fondamentali per abilitare git workflows.

Write a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *