Aggiornamento di un repository locale con modifiche da un repository GitHub


567

Ho un progetto controllato localmente da GitHub e da quel repository remoto sono state apportate modifiche. Qual è il comando corretto per aggiornare la mia copia locale con le ultime modifiche?


26
Vale la pena notare che github ha prodotto una serie di guide molto istruttive e utili per l'uso di git e github. Li ho trovati inestimabili quando ho fatto la prima volta il passaggio a git. help.github.com
Mark Embling,

Risposte:


791

Probabilmente:

git pull origin master

28
Si è lamentato: "Hai chiesto di estrarre dall'origine" remota ", ma non hai specificato un ramo. Poiché questo non è il telecomando configurato di default per il tuo ramo corrente, devi specificare un ramo sulla riga di comando." Quindi ho provato "$ git pull origin master" e ha funzionato bene.
Juan Lanus,

8
git pull origin master
Andrzej Rehmann,

1
Ho cancellato alcuni file e non li riporta più, qualche idea?
Aquarius Power il

1
facciamo un commit git prima di eseguirlo? ogni volta che eseguo questo comando, finisco con 18347213846 file modificati che non ho nemmeno toccato !!!
Orkun Ozen,

5
Ho appena imparato a mie spese che l'estrazione di un nuovo ramo del repository remoto non crea un ramo con quel nome localmente, ma invece tira quel ramo remoto in qualunque ramo locale venga verificato. Non sono sicuro di come annullare questo breve abbandono e la clonazione del repository. In ogni caso, sembra che il ramo locale sia indipendente dal ramo remoto e si dovrebbe sempre assicurarsi di essere nel ramo locale previsto prima di estrarre.
Joe Lapp,

87

Questo dovrebbe funzionare per ogni repository predefinito:

git pull origin master

Se il tuo ramo predefinito è diverso da master, dovrai specificare il nome del ramo:

git pull origin my_default_branch_name

2
Non proprio. fatale: impossibile trovare il maestro di riferimento remoto
Victor Eijkhout,

1
@Eijkhout probablt nel tuo caso di pronti contro termine non esiste un ramo master e qualche altro ramo è impostato come predefinito
Andrzej Rehmann,

62
git fetch [remotename]

Tuttavia, dovrai unire le modifiche nelle filiali locali. Se sei su un ramo che sta monitorando un ramo remoto su Github, allora

git pull

eseguirà prima un recupero, quindi unirà il ramo tracciato


5
Se stai utilizzando il git fetchmetodo, ti consigliamo di recuperare anche i tag git fetch -t. Se sei soddisfatto delle modifiche ( git log HEAD..FETCH_HEAD), puoi quindi unirle a git merge FETCH_HEAD.
Brad Grissom,

16

Questa domanda è molto generale e ci sono un paio di ipotesi che farò per semplificarlo un po '. Supponiamo che tu voglia aggiornare il tuo masterramo.

Se non hai apportato modifiche a livello locale, puoi utilizzare git pullper annullare eventuali nuovi commit e aggiungerli ai tuoi master.

git pull origin master

Se sono state apportate modifiche e si desidera evitare di aggiungere un nuovo commit di unione, utilizzare git pull --rebase.

git pull --rebase origin master

git pull --rebase funzionerà anche se non hai apportato modifiche ed è probabilmente la tua migliore chiamata.


1
Rebase e i pericoli di rebase: atlassian.com/git/tutorials/rewriting-history/git-rebase . I paragrafi 2 e 3 del "Comprendere i pericoli di rebase" mi fanno davvero perdere il set di comandi di SVN.
WillC

9

Con un master di origine già impostato, devi solo usare il comando seguente -

git pull "https://github.com/yourUserName/yourRepo.git"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.