Mais je reçois une erreur "! [Rejeté]" et quelque chose sur "pas d'avance rapide"
C'est parce que Git ne peut pas fusionner les modifications des branches dans votre master actuel. Supposons que vous ayez extrait la branche master
et que vous souhaitiez fusionner dans la branche distante other-branch
. Lorsque vous faites cela:
$ git pull origin other-branch
Git fait essentiellement ceci:
$ git fetch origin other-branch && git merge other-branch
Autrement dit, un pull
est juste un fetch
suivi d'un merge
. Cependant, lorsque pull
-ing, Git ne fusionnera que other-branch
s'il peut effectuer une fusion à avance rapide . Une fusion à avance rapide est une fusion dans laquelle le chef de la branche dans laquelle vous essayez de fusionner est un descendant direct du chef de la branche dans laquelle vous souhaitez fusionner. Par exemple, si vous avez cet arbre d'historique, la fusion other-branch
entraînerait une fusion rapide:
O-O-O-O-O-O
^ ^
master other-branch
Cependant, ce ne serait pas une fusion rapide:
v master
O-O-O
\
\-O-O-O-O
^ other-branch
Pour résoudre votre problème, récupérez d' abord la branche distante:
$ git fetch origin other-branch
Ensuite, fusionnez-le dans votre branche actuelle (je suppose que c'est le cas master
) et corrigez tout conflit de fusion:
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!