Synchronisation des Dépôts
Glissez pour afficher le menu
Comme mentionné dans le chapitre précédent, il est nécessaire de synchroniser la branche locale avec le dépôt distant. Pour cela, il faut exécuter la commande git pull :
git pull
Lorsque la commande git pull a été exécutée, Git a récupéré les mises à jour mais a constaté que les branches locale et distante ont divergé, c'est-à-dire qu'il existe des modifications sur les deux branches qui doivent être conciliées. Git n'a pas pu continuer car il doit savoir comment gérer ces différences. Il faut donc définir l'option merge et exécuter à nouveau la commande git pull :
git config pull.rebase false
Nous aborderons l’opération rebase plus tard dans ce cours.
git pull
Git a tenté de fusionner automatiquement les modifications locales et distantes de README.md, mais a rencontré un conflit de fusion. Examinons l'arbre des commits, qui indique où la divergence et les conflits se sont produits :
git log --graph --oneline --all
Résolution du conflit
Comme vous pouvez le constater, notre commit local actuel et le commit de la branche main distante partagent un ancêtre commun, mais divergent, ce qui entraîne le conflit de fusion que nous devons résoudre. Pour cela, nous allons ouvrir le fichier README.md dans l'éditeur Vim :
vim README.md
Pour résoudre ce conflit, il faut passer en mode insertion en appuyant sur i, supprimer les marqueurs de conflit et fusionner ces modifications de la manière suivante :
Ensuite, il faut appuyer sur la touche Échap, taper :wq, puis appuyer sur la touche Entrée pour enregistrer les modifications et quitter Vim. Maintenant, pour terminer la fusion, le fichier README.md doit être ajouté à la zone de staging puis validé à l'aide des commandes suivantes :
git add README.md
git commit
Après avoir exécuté la commande git commit, l’éditeur de texte par défaut s’ouvrira (le plus souvent, Vim). Vous pouvez soit conserver le message de commit par défaut et quitter Vim de la même manière que précédemment, soit modifier le message puis quitter.
Enfin, il est possible d’exécuter en toute sécurité la commande git push et de vérifier que la fusion à trois voies a réussi en affichant l’arbre des commits :
git log --graph --oneline --all
Récapitulatif des actions réalisées dans ces deux chapitres :
-
Simulation de la collaboration en effectuant des modifications à la fois localement et à distance sur le fichier
README.md; -
Validation d’une modification directement dans le dépôt distant, puis réalisation d’une modification différente localement ;
-
Lors de la tentative de poussée des modifications locales, apparition d’un conflit en raison de nouvelles mises à jour dans le dépôt distant ;
-
Pour résoudre ce problème, récupération des modifications du dépôt distant, entraînant un conflit de fusion ;
-
Résolution manuelle du conflit dans le fichier
README.mdà l’aide de l’éditeur Vim, validation des modifications résolues, puis poussée des mises à jour finales vers le dépôt distant.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion