
Il Git fetch
comando ti consente di guardare prima di saltare. Puoi scoprire quali modifiche sono state apportate a un repository remoto, ma senza sovrascrivere i tuoi file locali con i file remoti.
Cos’è git fetch e cosa fa?
Git recupero contro pull
Sincronizza i tuoi repository locali e remoti con git fetch
Vedi tutti i tag recuperati
Fare prima una corsa a secco
Come recuperare un singolo ramo
Recupera tutti i rami
Confronto tra filiali locali e remote
Sincronizzazione di un ramo locale con un ramo remoto
Il cucciolo mezzo addestrato
Cos’è git fetch e cosa fa?
IL fetch
Il comando in Git scarica commit, file e altre informazioni da un repository remoto al tuo repository locale, in modo sicuro. Usa fetch quando vuoi vedere quali modifiche hanno apportato altri sviluppatori, senza essere costretti ad accettare le modifiche. I tuoi file locali rimangono intatti. Perché è importante?
Devi mantenere la tua intelligenza quando lavori come parte di un team di sviluppo. Il repository remoto o centrale conterrà modifiche e nuovi rami che altri sviluppatori hanno creato e inviato al repository remoto.
È del tutto possibile che qualcuno abbia aggiornato la copia remota dei file che hai modificato localmente sul tuo computer. Se esegui casualmente a git pull
per aggiornare il tuo repository locale, probabilmente ti ritroverai a gestire le unioni per modifiche che potresti non volere nemmeno.
Dopo aver scaricato le informazioni, puoi esaminarle e vedere quali sono le modifiche. Ciò ti consente di fare una scelta informata su cosa vuoi unire in questo momento, se non altro, e cosa vuoi rimandare a più tardi.
Git recupero contro pull
IL git fetch
comando si comporta come il git pull
comando ma senza il passaggio che sovrascrive i file locali. Il tuo repository locale viene aggiornato e sincronizzato, ma le modifiche non vengono scritte nello stato operativo del tuo repository locale, quindi i tuoi file rimangono intatti.
O, per dirla in altro modo, il git pull
il comando è come a git fetch
seguito immediatamente da a git merge
.
Sincronizza i tuoi repository locali e remoti con git fetch
Per recuperare tutti i metadati aggiornati e i commit da un repository remoto al tuo repository locale, utilizza il file git fetch
comando con il nome o l’URL del repository remoto. Per impostazione predefinita, il primo repository remoto è chiamato “origine”.
git fetch origin
Puoi omettere la parola “origine” se stai lavorando con un singolo repository remoto.
git fetch
Ciò recupera tutti gli aggiornamenti dal repository “origin”, ma non unisce le modifiche nei file di lavoro. Possiamo vedere che c’è un nuovo ramo, chiamato “nuovo ramo”, che è stato recuperato per noi.
Una volta utilizzato il fetch
comando, puoi vedere vedere l’elenco completo dei rami sul telecomando, usando -r
opzione (remota) con il comando branch.
git branch -r
Questo elenca tutti i rami che il telecomando conosce, che dopo il fetch
sono anche nel tuo repository locale.
Vedi tutti i tag recuperati
Allo stesso modo, puoi usare il tag
opzione (nota, è “tag” senza “s”) per vedere l’elenco dei tag.
git tag
IMPARENTATO: Come cambiare, aggiungere e rimuovere i telecomandi Git
Fare prima una corsa a secco
Sebbene un git fetch
non unisce le modifiche nei tuoi file di lavoro, aggiorna comunque il tuo repository locale. Se vuoi vedere cosa cambia il file fetch
il comando eseguirà, senza effettivamente crearli, utilizzare il --dry-run
opzione.
git fetch --dry-run
Come recuperare un singolo ramo
Recuperare informazioni su un singolo ramo è facile. Aggiungi il nome del ramo alla riga di comando per dirlo fetch
devi solo sapere di quell’unico ramo.
Ecco, stiamo raccontando fetch
per recuperare il ramo “mary-feature” dal repository remoto “origin”.
git fetch origin mary-feature
Ora che i dettagli e il contenuto del ramo remoto sono nel tuo repository locale, puoi usare il file git checkout
comando per creare un nuovo ramo ed eseguire il checkout del ramo remoto. Questo non sovrascriverà alcun file esistente se è la prima volta che usi questo ramo.
git checkout -b mary-feature origin/mary-feature
Recupera tutti i rami
Se utilizzi più dispositivi remoti, puoi risparmiare tempo estraendo tutte le modifiche da tutti i rami nel repository locale utilizzando il --all
opzione.
git fetch --all
Confronto tra filiali locali e remote
Per vedere come i file in un ramo remoto differiscono dalle tue copie locali, usa git fetch
quindi utilizzare il git log
comando.
Si noti che i rami locali e remoti hanno due periodi “..
” separandoli. IL --oneline
opzione mostra l’identificatore di commit e il messaggio di commit.
git fetch
git log --oneline mary-feature..origin/mary-feature
La visualizzazione su una riga è utile se un ramo contiene molte modifiche. Per visualizzare un po’ più di informazioni, omettere il --oneline
opzione.
git log mary-feature..origin/mary-feature
Questo ci mostra l’ora e la data di ogni commit, insieme al messaggio di commit e ai dettagli di contatto dell’autore della modifica.
Sincronizzazione di un ramo locale con un ramo remoto
Se hai deciso di voler andare avanti e unire le modifiche dal ramo remoto ai tuoi file di lavoro locali, puoi utilizzare questi comandi.
Verificheremo il ramo per assicurarci che stiamo lavorando, è il nostro attuale ramo funzionante.
git checkout mary-feature
Il ramo è verificato per noi e ci viene detto che è dietro la versione remota. Possiamo usare git pull
per aggiornarlo, quindi git status
per controllare il nostro stato.
git pull
git status
Se abbiamo apportato alcune modifiche ai nostri file locali, Git ci informa quando eseguiamo il checkout del ramo che dovremo eseguire un git pull
per avviare un’unione.
git checkout mary-feature
Un semplice git pull
avvia il processo di recupero dei file e di unione, oppure possiamo tuffarci e utilizzare git merge
si. Inizieremo assicurandoci di lavorare con il ramo corretto
git checkout mary-feature
Lo diremo git
per unire il nostro ramo corrente con il ramo nel repository remoto, ci sono sei diversi commit che devono essere risolti.
Dobbiamo dire a Git quale ramo remoto vogliamo unire.
git merge origin/mary-feature
Si apre un editor per consentirci di fornire un messaggio di commit. Possiamo accettare il messaggio suggerito o aggiungerne uno nostro. L’editor è il tuo editor predefinito a meno che Git non sia stato configurato per utilizzare un editor diverso.
Salva le modifiche quando sei pronto per procedere. L’unione prosegue automaticamente alla chiusura dell’editor.
La nostra fusione ha avuto successo perché non ci sono stati conflitti.
I conflitti sorgono quando le stesse righe di codice vengono modificate da due o più sviluppatori. In tal caso, Git contrassegna i conflitti nel file interessato. Dovrai esaminarli a turno e scegliere quale modifica mantenere.
Il cucciolo mezzo addestrato
Proprio come un cucciolo in addestramento, fetch
recupererà ciò che chiedi, ma non lo lascerà cadere. Se vuoi davvero ciò che il cucciolo ti ha mostrato, dovrai farlo pull
.
IMPARENTATO: Git rebase: tutto quello che c’è da sapere