Como posso manter minha ramificação atualizada com master com git?

126

Eu tenho uma correção de bug no meu mestre e também quero que meu ramo obtenha essa correção. Que gitcomando eu uso?

Nic Hubbard
fonte

Respostas:

172

Supondo que você esteja bem com todas as alterações no mestre, o que você quer é:

git checkout <my branch>

mudar a árvore de trabalho para o seu ramo; então:

git merge master

para mesclar todas as alterações no mestre com as suas.

John Doty
fonte
5
E isso apenas adiciona as alterações do meu mestre no meu ramo e deixa o mestre em paz, correto?
precisa saber é o seguinte
3
@ Nic - Isso trará todos os commits do master, não apenas a correção de erros. Certifique-se de que é isso que você quer fazer.
Manojlds
12
@ Nic - Correto, isso não modifica o mestre.
John Doty
16
Pode ser bom recomendar um "mestre de check-out do git; git pull" inicial para garantir que a ramificação do mestre local esteja atualizada. Normalmente óbvio, mas ...
MikeW
Como um atalho de checkout / mesclagem mestre, você pode simplesmente fazer um "mestre de origem do git pull" para puxar o master / mesclagem do servidor para a ramificação de check-out local?
User1172173 15/05/19
66

Se sua filial for apenas local e não tiver sido enviada ao servidor, use

git rebase master

Caso contrário, use

git merge master
Chetan
fonte
18
Porque ele modifica o histórico de consolidação e você não deseja enviar o histórico de pesquisa modificado para o servidor.
Chetan
1
Se você estiver usando um repositório svn como seu repositório remoto - via git svn- então git rebase masteré o caminho a seguir, para manter um histórico linear, que é o que o svn entende.
Alondono 18/03/2015
15

Você pode usar o cherry-pick para obter as correções de erros específicas

$ git checkout branch
$ git cherry-pick bugfix
manojlds
fonte
a seleção de cereja funcionará apenas se o bugfix for um ramo que foi mesclado novamente no master?
Prasith Govin
1
Você pode escolher, mas depois de mesclar a ramificação no master (quando a ramificação estiver pronta), você terá o commit da correção de erros duas vezes no histórico.
Gauthier
0

Se você deseja que a correção seja integrada à ramificação, git cherry-picko (s) commit (s) relevante (s).

Alan Haggai Alavi
fonte