Come eseguire il checkout di un ramo Git remoto
Pubblicato: 2023-01-23Se 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
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
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
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
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
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.
ramo git
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
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
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
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
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
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