Aggiorna un ramo obsoleto rispetto al master in un repository Git


123

Ho un repository Git con branch (locale e remoto) che è diventato obsoleto. Vorrei aggiornare questo ramo con il ramo principale, ma non so come farlo. Probabilmente ci saranno anche molti conflitti di unione.

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


1
se sei venuto qui per scoprire come aggiornare un ramo obsoleto rispetto a un master in un repository Git se non hai apportato modifiche nel ramo locale, fai semplicemente un "git pull"
shabby

Risposte:


152

Aggiorna il ramo principale, cosa che devi fare a prescindere.

Quindi, uno di:

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

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

  3. Unisci master nel tuo ramo e risolvi i conflitti di unione. Quindi, l'unione dal tuo ramo al master dovrebbe essere pulita.

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

Userei l'approccio rebase, che dà risultati complessivi più puliti ai lettori successivi, secondo me, ma questo non è altro che il gusto personale.

Per ribasare e mantenere il ramo dovresti:

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

Nel tuo caso, controlla il vecchio ramo, quindi

git rebase master 

per farlo ricostruire contro master.


1
@Andrew: git rebase:)
CharlesB

1
git checkout $branch && git rebase $target- nel tuo caso, controlla il vecchio ramo, quindi git rebase masterfallo ricostruire contro master.
Daniel Pittman

3
Il tuo repo è pubblico? Va bene ribasare se è pubblico?
event_jr

4
Un buon consiglio quando si usa il rebase nei rami remoti: eseguire questo rebase del ramo remoto contro il ramo master solo quando nessuno sta spingendo i commit su questo ramo remoto.
Dherik

Una volta completato il rebase, è necessario eseguire il push delle modifiche utilizzando l' -fopzione. Mentre stai riscrivendo la cronologia, è necessaria una spinta energica.
Opster Elasticsearch Ninja
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.