Atualizar uma ramificação desatualizada em relação ao mestre em um repositório Git

123

Eu tenho um repositório Git que possui ramificação (local e remota) que ficou desatualizada. Gostaria de atualizar esse ramo com o ramo mestre, mas não sei como fazer isso. Provavelmente também haverá muitos conflitos de mesclagem.

Como posso trazer ou atualizar esta ramificação desatualizada para o mesmo estado que a ramificação mestre?

Andrew
fonte
1
Se você veio aqui para saber como atualizar um ramo ultrapassada contra mestre em um repo Git se você não tiver feito alterações no ramo local, então simplesmente fazer um "git pull"
gasto

Respostas:

152

Atualize a ramificação principal, o que você precisa fazer independentemente.

Então, um dos seguintes:

  1. Rebase o ramo antigo contra o ramo mestre. Resolva os conflitos de mesclagem durante a reestruturação e o resultado será uma ramificação atualizada que se mesclará perfeitamente com o mestre.

  2. Mesclar sua ramificação no mestre e resolver os conflitos de mesclagem.

  3. Mesclar mestre em sua ramificação e resolver os conflitos de mesclagem. Em seguida, a fusão da sua ramificação no mestre deve estar limpa.

Nada disso é melhor que o outro, eles apenas têm padrões de troca diferentes.

Eu usaria a abordagem rebase, que fornece resultados gerais mais limpos para os leitores posteriores, na minha opinião, mas isso não é nada além do gosto pessoal.

Para recuperar e manter a ramificação, você deve:

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

No seu caso, verifique o ramo antigo e, em seguida,

git rebase master 

para reconstruí-lo contra o mestre.

Daniel Pittman
fonte
1
@Andrew: git rebase:)
CharlesB
1
git checkout $branch && git rebase $target- no seu caso, verifique o ramo antigo e depois git rebase masterreconstrua-o contra o mestre.
precisa
3
O seu repo é público? Tudo bem se você refaz se for público?
event_jr
4
Um bom conselho ao usar rebase em ramificações remotas: faça essa ramificação remota contra ramificação principal apenas quando alguém não estiver enviando confirmações nessa ramificação remota.
Dherik
Depois que a rebase estiver concluída, você precisará enviar as alterações usando a -fopção Enquanto você reescreve o histórico, é necessário um esforço forçado.
Opster ElasticSearch Ninja