2012-04-02 25 views
10

Quindi, il mio ambiente di lavoro ha esattamente un ramo con un compagno remoto su Github. Sto cercando di fare git pull --rebase per evitare che git push crei messaggi di commit di fusione che non forniscono nuove informazioni ad altri che lavorano su questo progetto e si limitano a fare i lavori. Ma quando ci provo, mi dà questo:"git pull --rebase" porta a "Impossibile rebase su più rami"

From https://github.com/our_profile/our_repository 
* branch   HEAD  -> FETCH_HEAD 
Cannot rebase onto multiple branches 

E l'abortire. Chiamando git branch mi informa che ho un solo ramo sul mio computer locale, quindi cosa sta succedendo?

+0

Sì, e l'esecuzione di * 'git pull --rebase' * per le opere seconde di tempo! Questo perché durante la prima azione git ha scaricato i dati, così che i rami master remoti e locali hanno iniziato a indicare lo stesso commit. –

risposta

9

provare a specificare esattamente quello filiali remote si vuole tirare:

git pull --rebase origin branch 

In alternativa si può anche git fetch tutti i cambiamenti dal repository remoto prima, e poi rebase manualmente:

git rebase origin/branch 
+0

Questo ha funzionato quasi, ma ha finito per causare problemi che coinvolgono un sacco di file contrassegnati per la cancellazione. Dovevo andare a git GUI per salvare il lavoro che avevo fatto su di loro. – bourgtai

+0

Sai perché si è verificata questa situazione? – dbn

-2

La soluzione più semplice Ho scoperto che dovevo usare la voce di menu contestuale di TortoiseGit "Git Sync". In esso è un mezzo per recuperare il valore di & rebase sul tuo attuale ramo di lavoro.

+0

Ho pensato che git pull ha fatto un recupero di default che è evidente da tutti i messaggi di recupero che arrivano. Che cosa aggiunge il sopra? – Hazok

3

Nel mio caso, dovevo essere sia specifico su quale telecomando e spostare il flag --rebase alla fine del comando.

Quindi: git pull origin master --rebase

imparato da questa risposta: Git: Cannot rebase onto multiple branches