Mais je reçois une erreur " ! [rejected]" et quelque chose à propos de "non fast forward".
C'est parce que Git ne peut pas fusionner les changements des branches dans votre master actuel. Disons que vous avez extrait la branche master
et vous voulez fusionner dans la branche distante. other-branch
. Lorsque vous faites cela :
$ git pull origin other-branch
C'est ce que fait Git :
$ git fetch origin other-branch && git merge other-branch
C'est-à-dire qu'un pull
est juste un fetch
suivi d'un merge
. Cependant, lorsque pull
-ing, Git will uniquement fusionner other-branch
si il peut effectuer un avance rapide fusionner. A avance rapide est une fusion dans laquelle la tête de la branche dans laquelle vous essayez de fusionner est une descendant direct de la tête de la branche que vous voulez fusionner. Par exemple, si vous avez cet arbre d'histoire, alors fusionner other-branch
entraînerait une fusion en avance rapide :
O-O-O-O-O-O
^ ^
master other-branch
Cependant, cela pas être une fusion rapide :
v master
O-O-O
\
\-O-O-O-O
^ other-branch
Pour résoudre votre problème, commencez par aller chercher la branche distante :
$ git fetch origin other-branch
Ensuite, fusionnez-la dans votre branche actuelle (je suppose que c'est la suivante master
), et corrige les éventuels conflits de fusion :
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!
4 votes
Quelle est la commande que vous exécutez ?
1 votes
C'est fetch qui peut échouer avec le message 'non fast forward'. Avez-vous modifié la branche de suivi à distance (origin/xyz), ou la branche a-t-elle été remontée / réécrite dans le dépôt distant ? Vous pourriez avoir besoin d'utiliser "
git fetch origin --force
"mais veuillez lire la documentation avant de le faire.