2009-09-18 21 views
366

Ho un progetto verificato localmente da github, da quel repository remoto sono state apportate modifiche. Qual è il comando corretto per aggiornare la mia copia locale con le ultime modifiche?Aggiornamento di un repository locale con modifiche da un repository Github

+16

Vale la pena notare che github ha prodotto una serie di guide molto utili e informative per l'utilizzo di git e github. Li ho trovati inestimabili quando ho fatto la prima mossa. https://help.github.com/ –

+18

@MarkEmbling PER OGNI domanda è possibile aggiungere un commento "RTFM" ... Ma sono abbastanza felice che qualcuno risponda a questa domanda. – jm666

risposta

513

probabilmente:

git pull origin master 
+20

Si è lamentato: "Hai chiesto di estrarre dal remoto" origine ", ma non hai specificato un ramo . Perché questo non è il remoto configurato predefinito per il tuo ramo corrente, devi specificare un ramo sulla riga di comando." Così ho provato "$ git pull origin master" e ha funzionato bene. –

+6

git pull master originale – Hoto

+0

Ho cancellato alcuni file e non li sta portando di nuovo, qualche idea? –

51
git fetch [remotename] 

Tuttavia è necessario unire le modifiche nelle filiali locali. Se siete su un ramo che è il monitoraggio di un ramo a distanza su Github, quindi

git pull 

sarà prima fare un'operazione di recupero, e quindi unire nel ramo rintracciato

+2

Se si utilizza il metodo 'git fetch', è anche possibile recuperare i tag con' git fetch -t'. Se sei soddisfatto delle modifiche ('git log HEAD..FETCH_HEAD'), puoi unirle con' git unire FETCH_HEAD'. –

56

Questo dovrebbe funzionare per ogni repo predefinito:

git pull origin master 

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

git pull origin my_default_branch_name 
+2

Non proprio. fatale: Impossibile trovare il master di riferimento remoto –

+1

@Eijkhout probablt nel caso del repository non esiste un ramo master e qualche altro ramo è impostato come predefinito – Hoto

0

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

Se non sono state apportate modifiche localmente, è possibile utilizzare git pull per disattivare qualsiasi nuovo commit e aggiungerli al numero master.

git pull origin master 

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

git pull --rebase origin master 

git pull --rebase funzionerà anche se non sono state apportate modifiche, ed è probabilmente la migliore chiamata.

Problemi correlati