Come eseguire la sincronizzazione con un repository Git remoto?


92

Ho biforcato un progetto su GitHub, apportato alcune modifiche, finora tutto bene.

Nel frattempo, il repository da cui ho eseguito il fork è cambiato e vorrei inserire quelle modifiche nel mio repository. Come lo faccio ?

Risposte:


76

Generalmente git pullè sufficiente, ma non sono sicuro di quale layout hai scelto (o ha scelto GitHub per te).


4
git pull non funzionerà a meno che tu non abbia configurato il telecomando da cui recuperare e il ramo a cui unire.
Abizern

Presumo che sia stato fatto durante la fase di "creazione di un fork". A meno che questa informazione non sia stata gettata via, dovrebbe essere ancora lì.
Šimon Tóth

l'utilizzo di git pull con https non ha funzionato, ma con http sì ... ora sono aggiornato, grazie!
George Profenza

@GeorgeProfenza Non è sicuro. Prendi in considerazione l'utilizzo dissh
JVE999

65

Supponendo che i loro aggiornamenti siano nel master e che tu sia nel ramo in cui desideri unire le modifiche.

git remote add origin https://github.com/<github-username>/<repo-name>.git
git pull origin master

Si noti inoltre che si vorrà quindi reinserire l'unione nella propria copia del repository:

git push origin master

aggiunta funzionata, estrazione non riuscita :(, ho ricevuto un errore relativo a https: errore: protocollo https non supportato o disabilitato in libcurl durante l'accesso a github.com/mrdoob/three.js.git/info/refs fatale: richiesta HTTP non riuscita Suggerimenti?
George Profenza

Quale piattaforma? Sembra che una delle dipendenze di git non sia completa.
Mark Hibberd

Per aggirare il problema puoi anche utilizzare il protocollo git invece di https, ad esempio git remote set-url git: //github.com/mrdoob/three.js.git, quindi prova git pull.
Mark Hibberd

in esecuzione su osx. Sono riuscito a ottenerlo usando git pull github.com/mrdoob/three.js.git master
George Profenza

3
errore di battitura nei comandi, penso, si inizia con original, quindi si passa aorigin
Benjol

46

Devi aggiungere il repository originale come upstream.

È tutto ben descritto qui: https://help.github.com/articles/fork-a-repo

git remote add upstream https://github.com/octocat/Spoon-Knife.git
git fetch upstream
git merge upstream/master
git push origin master

5

Devi aggiungere il repository originale (quello che hai biforcato) come telecomando.

git remote aggiungi github (clone url per il repository originale)

Quindi devi portare le modifiche al tuo repository locale

git fetch github

Ora avrai tutti i rami del repository originale nel tuo locale. Ad esempio, il ramo principale sarà github/master. Con questi rami puoi fare quello che vuoi. Uniscili nei tuoi rami ecc


1
Suggerisco il nome upstreamper il telecomando.
vidstige

@vidstige Che non è abbastanza descrittivo se hai più telecomandi per un repository. Ad esempio, ho spesso un telecomando su GitHub e un telecomando su Dropbox.
Abizern

beh, allora ovviamente ha senso. Ecco perché è fantastico avere la possibilità di nominarli tu stesso. Renditi conto che la tua configurazione è probabilmente meno comune che avere un telecomando chiamato origin che è il tuo fork e poi hai l'originale, che di solito è chiamato "upstream".
vidstige

-8

Per Linux:

git add * 
git commit -a --message "Initial Push All"
git push -u origin --all

3
Questo è l'opposto di ciò che OP stava cercando.
Ryan
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.