Come eseguire il checkout di un ramo Git remoto

Pubblicato: 2023-01-23
Laptop Linux che mostra un prompt bash
fatmawati achmad zaenuri/Shutterstock.com
Per estrarre un ramo da un repository remoto, usa il comando 'git fetch', quindi 'git branch -r' per elencare i rami remoti. Scegli il ramo che ti serve e usa un comando nel formato 'git checkout -b new-branch-name origin/remote-branch-name.' 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.

Sommario

Git, rami e telecomandi
Trovare le tue filiali locali
Check-out di una filiale remota
Gestione dei conflitti di nome
Gestione di più repository remoti
Prima di effettuare il checkout

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 fornito 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". È dove 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, il check-out di un ramo remoto con più telecomandi è lo stesso che utilizzare un singolo telecomando.

Trovare le tue filiali locali

Devi evitare conflitti di nomi. 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 .

 ramo git 

Elenco delle filiali locali con il comando 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 nuova funzionalità
 stato git 

Verifica di un ramo locale con il comando git checkout

Il primo comando cambia il ramo per noi, in modo che "new-feature" sia il ramo corrente. Il comando git status 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.

CORRELATO: Come aggiornare e mantenere rami Git separati

Check-out di una filiale remota

C'è un ramo sul 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 ritirerà i metadati dal repository remoto.

 git recupera 

Utilizzo del comando git fetch per recuperare i metadati su un repository remoto

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) indica a Git di segnalare i rami che si trovano nel repository remoto.

 ramo git -r 

Utilizzo del comando git branch -r per elencare i rami remoti

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.

Come scegliere il flusso di lavoro Git e il modello di branching adatto al tuo team
CORRELATO Come scegliere il flusso di lavoro Git e il modello di ramificazione adatto al tuo team

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 

Verifica di un ramo remoto con il comando git checkout -b

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

 ramo git 

Elenca i rami locali con il comando git branch, con la copia appena creata del ramo remoto selezionato come ramo corrente

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 usare lo stesso comando che abbiamo usato in precedenza e scegliere un nuovo nome di ramo locale.

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

Check-out di un ramo remoto con il comando git checkout -b con il ramo locale con un nome diverso dal ramo remoto

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 ramo remoto. Rinominare un ramo è banale in Git.

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

Rinominare un ramo con il comando git branch -m

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 (view).

 git remoto -v 

Elenco dei repository remoti con il comando 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 --tutto
 ramo git --all 

Usando git fetch --all per aggiornare i metadati locali e usando git branch --all per elencare tutti i rami, locali e remoti

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 

Estrazione di un ramo remoto con il comando git checkout -b, utilizzando il nome remoto e il nome del ramo

CORRELATO: Come cambiare, aggiungere e rimuovere i telecomandi Git

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.

CORRELATO: Git rebase: tutto ciò che devi sapere