Mas recebo um erro "! [Rejeitado]" e algo sobre "avanço rápido"
Isso ocorre porque o Git não pode mesclar as alterações dos ramos no seu mestre atual. Digamos que você fez check-out da ramificação master
e deseja mesclar na ramificação remota other-branch
. Quando você faz isso:
$ git pull origin other-branch
Git está basicamente fazendo isso:
$ git fetch origin other-branch && git merge other-branch
Ou seja, a pull
é apenas a fetch
seguido de a merge
. No entanto, quando pull
-ing, o Git só será mesclado other-branch
se puder executar uma mesclagem de avanço rápido . Uma mesclagem de avanço rápido é uma mesclagem na qual o cabeçalho do ramo em que você está tentando mesclar é um descendente direto do cabeçalho do ramo que você deseja mesclar. Por exemplo, se você tiver essa árvore do histórico, a mesclagem other-branch
resultará em uma mesclagem de avanço rápido:
O-O-O-O-O-O
^ ^
master other-branch
No entanto, isso não seria uma mesclagem de avanço rápido:
v master
O-O-O
\
\-O-O-O-O
^ other-branch
Para resolver seu problema, primeiro busque a ramificação remota:
$ git fetch origin other-branch
Em seguida, mescle-o em sua ramificação atual (presumo que seja master
) e corrija quaisquer conflitos de mesclagem:
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!