Ricerca nel sito web

Come eseguire il checkout di un ramo Git remoto


Riepilogo: per estrarre un ramo da un repository remoto, utilizzare il comando git fetch, quindi git branch -r per elencare i rami remoti. Scegli il ramo che ti serve e usa un comando del modulo git checkout -b nome-nuovo-ramo origin/nome-ramo-remoto. Se utilizzi più repository, modifica la parte origin del comando checkout con il nome del telecomando da cui desideri effettuare il checkout del ramo.

Se il tuo team di sviluppo utilizza Git, alla fine dovrai controllare il lavoro di qualcun altro come ramo da un repository remoto. Come la maggior parte delle operazioni di ramo in Git, passare a un ramo remoto è in realtà abbastanza semplice.

Git, rami e telecomandi

La filosofia di Git è ramificarsi spesso. I rami consentono lo sviluppo senza alterare la base di codice principale. Quando sei soddisfatto che il tuo nuovo codice testato sia pronto, unisci il tuo nuovo ramo in un altro ramo. Di solito, questo è il ramo principale o principale, ma puoi unire due rami qualsiasi.

A causa di questa flessibilità e del modo leggero e veloce con cui Git gestisce rami e unioni, il branching è stato trasformato. Nei sistemi di controllo delle versioni precedenti, il branching era un grosso problema. La ramificazione e l'unione erano lente e soggette a errori. Git ha offerto agli sviluppatori ramificazioni facili e veloci utilizzate per sostenere molti flussi di lavoro diversi.

Se lavori o fai volontariato come parte di un team di sviluppo che utilizza Git, avrai un repository Git centrale, remoto dal computer di ciascun ingegnere del software. Questo è noto come repository remoto o semplicemente remoto. È qui che vengono inviati i commit e le modifiche al tuo repository locale quando esegui un push.

Ovviamente è quello che stanno facendo anche gli altri sviluppatori. Questo facilita la collaborazione. Se hai bisogno di accedere al lavoro di un altro sviluppatore, devi solo recuperare il loro codice da un ramo sul repository remoto. Se hanno bisogno di accedere al tuo lavoro, recupereranno il tuo codice da un ramo nel repository che tiene traccia di uno dei tuoi rami locali.

In Git, un progetto di sviluppo può avere più remote. Tuttavia, un ramo locale può monitorare solo un singolo ramo remoto. Quindi, fintanto che lavori con il telecomando appropriato, controllare una filiale remota con più telecomandi è come utilizzare un singolo telecomando.

Trovare le tue filiali locali

Devi evitare conflitti di nome. Se hai un ramo locale che ha lo stesso nome del ramo remoto che stai per controllare, hai due opzioni. Puoi rinominare il tuo ramo locale e controllare il ramo remoto. In questo modo, il tuo ramo locale che tiene traccia del ramo remoto ha lo stesso nome del ramo remoto. Oppure puoi effettuare il checkout del ramo remoto e dire a Git di creare un ramo di tracciamento locale con un nuovo nome.

Per scoprire i nomi dei rami nel tuo repository locale, usa il comando git branch.

git branch

Questo repository locale ha un ramo principale e altri tre rami. L'asterisco indica qual è il ramo corrente. Per passare da un ramo all'altro è necessario controllare il ramo con cui si desidera lavorare.

git checkout new-feature
git status

Il primo comando cambia il ramo per noi, in modo che new-feature sia il ramo corrente. Il comando git status lo verifica per noi.

Possiamo saltare avanti e indietro tra i rami, eseguire il commit di nuove modifiche, estrarre gli aggiornamenti dal remoto e inviare gli aggiornamenti locali al remoto.

Check-out di una filiale remota

C'è un ramo nel repository remoto che non è presente sulla nostra macchina. Uno sviluppatore chiamato Mary ha creato una nuova funzionalità. Vogliamo passare a quel ramo remoto in modo da poter creare quella versione del software localmente.

Se eseguiamo un fetch, Git estrarrà i metadati dal repository remoto.

git fetch

Poiché questo è il primo fetch che eseguiamo da quando Mary ha inviato il suo ramo al repository remoto, ci è stato detto che esiste un nuovo ramo chiamato origin/mary-feature. Il nome predefinito per il primo repository remoto aggiunto a un progetto è origine.

Indipendentemente dal fatto che vediamo o meno questo messaggio, possiamo sempre chiedere a Git di elencare i rami nel repository remoto.

L'opzione -r (remote) dice a Git di segnalare i rami che si trovano nel repository remoto.

git branch -r

Il punto da notare qui è che Git sta controllando la sua copia locale dei metadati del telecomando. Ecco perché abbiamo utilizzato il comando git fetch per assicurarci che la copia locale dei metadati sia aggiornata.

Una volta individuato il ramo che vogliamo, possiamo andare avanti e verificarlo. Usiamo il comando git checkout con l'opzione -b (ramo), seguito dal nome che useremo per il ramo locale, seguito dal nome del ramo remoto .

git checkout -b mary-feature origin/mary-feature

Possiamo vedere che abbiamo verificato il ramo remoto e creato un ramo locale che terrà traccia delle modifiche nel ramo remoto.

git branch

La nostra nuova filiale locale è ora la nostra attuale filiale di lavoro.

Gestione dei conflitti di nome

Se disponi di un ramo locale che ha lo stesso nome del ramo remoto, puoi rinominare il ramo locale prima di estrarre il ramo remoto oppure eseguire il checkout del ramo remoto e specificare un nome diverso per il ramo locale.

Per eseguire il checkout del ramo remoto in un ramo locale con un nome diverso, possiamo utilizzare lo stesso comando utilizzato in precedenza e scegliere un nuovo nome di ramo locale.

git checkout -b mary-test origin/mary-feature

Questo crea un ramo locale chiamato mary-test che terrà traccia dei commit locali in quel ramo. I push andranno al ramo remoto origin/mary-feature.

Questo è probabilmente il modo migliore per gestire i conflitti di nomi locali. Se vuoi davvero mantenere lo stesso nome del ramo locale e remoto, dovrai rinominare il ramo locale prima di controllare il remoto. Rinominare un ramo è banale in Git.

git branch -m mary-feature old-mary-branch

Ora puoi effettuare il checkout del ramo remoto origin/mary-feature.

Gestione di più repository remoti

Se hai configurato più repository remoti, devi fare attenzione a lavorare con il repository appropriato quando estrai il ramo remoto.

Per elencare i tuoi repository remoti, usa il comando remote con l'opzione -v (visualizza).

git remote -v

Per vedere tutti i rami disponibili, dobbiamo recuperare i metadati da tutti i nostri remoti, quindi elencare i rami remoti.

git fetch --all
git branch --all

Possiamo vedere che il ramo che vogliamo è nel telecomando origine. Il comando per verificarlo è nello stesso formato che abbiamo già utilizzato. Dobbiamo specificare il nome remoto, origine, così come il nome del ramo, mary-feature.

git checkout -b mary-feature origin/mary-feature

Prima di effettuare il checkout

Prima di effettuare il checkout, tieni a mente alcune cose e starai bene.

Assicurati di evitare conflitti di nome. Se hai un ramo locale con lo stesso nome del ramo remoto, decidi se rinominare il ramo locale o creare un ramo con un nome diverso per tenere traccia del ramo remoto.

Se utilizzi più repository remoti, assicurati di utilizzare il telecomando corretto.