Contenu du cours
Fondamentaux de GitHub
Fondamentaux de GitHub
Synchronisation des Dépôts
Comme mentionné dans le chapitre précédent, il est nécessaire de synchroniser notre branche locale avec le dépôt distant. Pour cela, il convient d’exécuter la commande git pull
:
Lorsque la commande git pull
a été exécutée, Git a récupéré les mises à jour mais a constaté que nos branches locale et distante ont divergé, c’est-à-dire que des modifications existent sur les deux branches et doivent être conciliées. Git ne peut pas continuer sans savoir comment gérer ces différences, il faut donc définir l’option merge et relancer la commande git pull
:
L’opération rebase sera abordée plus loin dans ce cours.
Git a tenté de fusionner automatiquement les modifications locales et distantes du fichier 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 :
Résolution du conflit
Comme vous pouvez le constater, notre commit local actuel et le commit de la branche main
du dépôt distant 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 :
Pour résoudre ce conflit, il faut passer en mode insertion en appuyant sur i
, supprimer les marqueurs de conflit, et combiner ces modifications de la manière suivante :
Ensuite, il convient d’appuyer sur la touche Échap, de taper :wq
, puis d’appuyer sur la touche Entrée pour enregistrer les modifications et quitter Vim. À présent, pour terminer la fusion, le fichier README.md
doit être ajouté à la zone de préparation, puis validé à l’aide des commandes respectives :
Après l’exécution de la commande git commit
, l’éditeur de texte par défaut s’ouvrira (probablement Vim). Il est possible de conserver le message de validation par défaut et de quitter Vim de la même manière que précédemment, ou de modifier le message avant de 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 validations :
Analysons ce que nous avons fait dans ces deux chapitres :
Nous avons simulé une collaboration en effectuant des modifications à la fois localement et à distance sur le fichier
README.md
;Nous avons d'abord validé une modification directement dans le dépôt distant, puis effectué une modification différente localement ;
Lorsque nous avons tenté de pousser nos modifications locales, nous avons rencontré un conflit car le dépôt distant avait de nouvelles mises à jour ;
Pour résoudre cela, nous avons récupéré les modifications du dépôt distant, ce qui a entraîné un conflit de fusion ;
Nous avons ensuite résolu manuellement le conflit dans le fichier
README.md
à l'aide de l'éditeur Vim, validé les modifications résolues, puis poussé avec succès les mises à jour finales vers le dépôt distant.
Merci pour vos commentaires !