2012-01-22 8 views
104

Ho un repository Git con branch (locale e remoto) che è diventato obsoleto. Vorrei portare questo ramo aggiornato con il master, ma non so come farlo. Probabilmente ci saranno anche molti conflitti di fusione.Aggiornare un ramo obsoleto rispetto al master in un repository Git

Come posso portare o aggiornare questo ramo obsoleto allo stesso stato del ramo master?

+1

se siete venuti qui per scoprire come aggiornare un ramo obsoleto rispetto al master in un repository Git se non avete apportato alcuna modifica al ramo locale, fate semplicemente un "git pull" – shabby

risposta

132

Aggiornare il ramo principale, che è necessario fare a prescindere.

Poi, uno di:

  1. Rebase il vecchio ramo contro il ramo master. Risolvi i conflitti di unione durante rebase e il risultato sarà un ramo aggiornato che si fonde in modo pulito con il master.

  2. Unisci il tuo ramo al master e risolvi i conflitti di unione.

  3. Unisci il master nel ramo e risolvi i conflitti di unione. Quindi, la fusione dal tuo ramo in master dovrebbe essere pulita.

Nessuno di questi è migliore dell'altro, hanno solo schemi di scambio diversi.

Vorrei usare l'approccio rebase, che a mio parere fornisce risultati generali più chiari ai lettori successivi, ma questo non è niente a parte il gusto personale.

Per rebase e mantenere il ramo si farebbe:

git checkout <branch> && git rebase <target> 

Nel tuo caso, controllare il vecchio ramo, poi

git rebase master 

per farlo ricostruito contro padrone.

+0

qual è il comando da rebase e mantenere il ramo? – Andrew

+1

@Andrew: 'git rebase' :) – CharlesB

+1

' git checkout $ branch && git rebase $ target' - nel tuo caso, controlla il vecchio ramo, quindi 'git rebase master' per farlo ricostruire contro master. –

Problemi correlati