Leçon 12 / 15

Vérifier et terminer une résolution

12 min Git — branches, revue et historique Gratuit

Objectif : Contrôler les fichiers résolus, poursuivre l’opération Git en cours ou l’annuler si le résultat n’est pas fiable.

Après avoir choisi une version qui préserve l’intention des changements concurrents, vous devez vérifier le fichier avant de laisser Git poursuivre. Une résolution incorrecte peut supprimer une partie de la fonctionnalité ou conserver des marqueurs qui rendent le fichier invalide.

Dans cette leçon, vous terminez ou annulez un rebase interrompu par un conflit. Les fichiers du site restent inchangés dans l’état du projet : les commandes présentées s’appliquent uniquement lorsqu’un conflit réel survient dans votre dépôt.

Contrôler le résultat avant de poursuivre

Dans la leçon précédente, vous avez comparé les versions et construit une résolution cohérente. Une fois le fichier enregistré, contrôlez le résultat avec git diff : cette commande affiche les modifications qui ne sont pas encore ajoutées à la zone de préparation. Vous pouvez ainsi examiner le contenu final, plutôt que de vous fier uniquement à la disparition des marqueurs de conflit.

Terminal
git diff

Lisez le diff du début à la fin. Vérifiez que le fichier contient bien les deux changements attendus, que les lignes qui ne devaient pas changer sont préservées et qu’aucune ligne de séparation de conflit, comme <<<<<<<, ======= ou >>>>>>>, ne subsiste. Pour un fichier HTML, assurez-vous aussi que les balises restent correctement ouvertes et fermées.

Marquer le fichier comme résolu

Lorsque le contenu vous convient, ajoutez le fichier résolu avec git add. Cette action indique à Git que vous avez terminé de traiter le conflit pour ce fichier. Remplacez index.html dans l’exemple par le chemin réellement signalé par Git ; si plusieurs fichiers sont en conflit, vérifiez chacun d’eux avant de les ajouter.

Terminal
git add index.html
git status
Résultat attendu
Le statut indique que le fichier n’est plus signalé comme non fusionné. D’autres fichiers en conflit peuvent toutefois rester à résoudre.

Le statut vous permet de repérer si un fichier reste non fusionné, c’est-à-dire si Git attend encore une résolution pour celui-ci. L’ajout du fichier ne crée pas un commit séparé pendant un rebase : il prépare la résolution pour que Git puisse rejouer le commit interrompu.

Poursuivre ou annuler le rebase

Quand tous les fichiers en conflit sont résolus et ajoutés, demandez à Git de reprendre le rebase. Git poursuit alors le commit qui avait été interrompu ; il peut terminer l’opération ou s’arrêter de nouveau si un autre commit provoque un conflit. Dans ce dernier cas, contrôlez et résolvez ce nouveau conflit de la même manière.

Terminal
git rebase --continue
Résultat attendu
Si aucun autre conflit n’interrompt l’opération, Git termine le rebase et place les commits rejoués sur la base choisie.

Si vous constatez que le résultat n’est pas fiable, ou si vous ne pouvez pas terminer la résolution, annulez le rebase en cours. La commande git rebase --abort abandonne cette tentative et restaure la branche dans l’état où elle se trouvait avant le rebase. Elle ne sert qu’à interrompre un rebase en cours : ne l’exécutez pas après que celui-ci est déjà terminé.

Terminal
git rebase --abort
git status
Résultat attendu
Après l’annulation, le rebase n’est plus en cours et la branche retrouve l’état qui précédait cette tentative. Le statut permet de contrôler l’état obtenu.

À retenir

  • Contrôlez le contenu résolu avec `git diff` et vérifiez qu’aucun marqueur ne subsiste.
  • Ajoutez chaque fichier vérifié avec `git add` pour indiquer à Git que son conflit est traité.
  • Poursuivez un rebase dont les conflits sont résolus avec `git rebase --continue`.
  • Si le résultat n’est pas fiable, annulez le rebase en cours avec `git rebase --abort`, puis contrôlez l’état obtenu.

La prochaine leçon mettra ces pratiques en œuvre pour développer la fonctionnalité « Nouveaux guides » sur une branche dédiée.

Envie d'aller plus loin ?

Les cours Enovatic sont gratuits et le resteront. Si vous cherchez un accompagnement encadré, nos formations professionnelles sont animées par les mêmes formateurs.