Contenu du cours
Fondamentaux de GitHub
Fondamentaux de GitHub
Synchronisation des Dépôts
Comme mentionné dans le chapitre précédent, nous devons synchroniser notre branche locale avec le dépôt distant. Pour ce faire, nous devons exécuter la commande git pull
:
Lorsque nous avons exécuté la commande git pull
, Git a récupéré les mises à jour mais a remarqué que nos branches locales et distantes ont divergé, ce qui signifie qu'il y a 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, alors définissons l'option merge et exécutons à nouveau la commande git pull
:
Git a essayé de fusionner automatiquement les modifications locales et distantes de README.md
, mais a rencontré un conflit de fusion. Jetons un coup d'œil à l'arbre des commits, qui indique où la divergence et les conflits se sont produits :
Résolution du Conflit
Comme vous pouvez le voir, notre commit local actuel et le commit dans la branche main
distante partagent un ancêtre commun, mais ils divergent, ce qui conduit au conflit de fusion que nous devons résoudre. Pour ce faire, nous allons ouvrir le fichier README.md
dans l'éditeur Vim :
Ce que nous pouvons faire pour résoudre ce conflit est d'entrer en mode insertion en appuyant sur i
, de supprimer les marqueurs de conflit, et de combiner ces changements de la manière suivante :
Ensuite, vous devez appuyer sur la touche Échap, taper :wq
, et 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 commité en utilisant les commandes respectives :
Enfin, nous pouvons exécuter en toute sécurité la commande git push
et vérifier que la fusion à trois voies a réussi en affichant l'arbre des commits :
Décomposons ce que nous avons fait dans ces deux chapitres :
-
Nous avons simulé la collaboration en apportant des modifications à la fois localement et à distance au fichier
README.md
; -
Nous avons d'abord validé une modification directement dans le dépôt distant, puis apporté une modification différente localement ;
-
Lorsque nous avons essayé 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
en utilisant l'éditeur Vim, validé les modifications résolues, et poussé avec succès les mises à jour finales vers le dépôt distant.
Merci pour vos commentaires !