Comment éviter le message Git "Pulling without specifying how to reconcile divergent branches is discouraged" ?

Lorsque vous utilisez fréquemment Git, vous connaissez alors la commande "git pull". Cette commande est la fusion de deux autres commandes, "git fetch" et "git merge". Elle permet ainsi de récupérer les changements depuis le dépôt distant vers votre dépôt local (fetch) et de les fusionner avec votre code (merge). Le message d'avertissement "Pulling without specifying how to reconcile divergent branches is discouraged" est apparu dans la version 2.27 de Git.

Ce message est un message vous avertissant qu'utiliser cette commande sans indiquer la façon dont on souhaite fusionner les changements entre les branches est déconseillé. On le voit notamment lorsque vous faites la commande "git pull origin master". Vous récupérez les changements de la branche "master" du dépôt distant, pour les intégrer dans votre branche locale "origin". La commande effectue la fusion sans demander de consigne, ce qui peut causer des conflits avec des erreurs dans votre code. En plus de l'avertissement, le message complet vous propose 3 commandes permettant de ne plus avoir de message d'avertissement, car elles configurent un comportement clair à adopter lors des fusions entre branches avec "git pull".

git config pull.rebase false

Cette commande indique le comportement par défaut. La commande utilise un "merge" pour combiner les deux branches en une nouvelle.

git config pull.rebase true

Avec cette commande, git traite alors les 2 branches comme une branche unique. Les changements constitueront une nouvelle révision qui va être intégrée à la branche du dépôt distant. On ne conserve ainsi que 2 branches, une distante et une locale.

git config pull.ff only

En utilisant cette commande, la commande "git pull" sera effectuée uniquement s'il n'y a pas de conflit détecté. Si c'est le cas, alors la commande sera abandonnée.

Depuis la version 2.29 de Git, un seul paramètre permet de configurer le comportement de la commande "git pull". Il s'agit du paramètre "pull.ff" seul. La valeur "true" indique le comportement par défaut (fusionner dans une nouvelle branche). La valeur "false" indique de créer une nouvelle révision, et la valeur "only" permet à Git de n'effectuer la commande que si aucun conflit n'est détecté. Le fait d'affecter une valeur à ce paramètre supprime le message d'avertissement.

# true, false ou only
git config pull.ff true

Git