📘 Chapitre – Résolution de conflits et historique collaboratif

1. 🎯 Objectif pédagogique

Savoir identifier et résoudre les conflits Git lors des fusions ou pulls, et maintenir un historique de commits clair pour faciliter la collaboration en équipe.

2. 📚 Concepts abordés

  • Qu’est-ce qu’un conflit Git et comment le détecter ?
  • Résolution manuelle des conflits dans les fichiers
  • Commandes utiles : git status, git diff, git merge --abort
  • Nettoyage de l’historique avec git log --oneline et git rebase
  • Bonnes pratiques de messages de commit

3. 🧠 Explication théorique

Un conflit Git survient lorsque deux personnes modifient la même ligne d’un fichier sur des branches différentes. Lors d’un git merge ou git pull, Git marque le fichier avec des balises spéciales :

<<<<<<< HEAD
Votre version locale
=======
La version distante
>>>>>>> branche

Il faut choisir la version correcte (ou les fusionner manuellement), puis :

git add fichier_conflit
git commit

Historique collaboratif

Pour garder un historique lisible :

  • Faire des commits clairs (ex. feat: ajout formulaire contact).
  • Utiliser git log --oneline --graph --decorate pour visualiser l’historique.
  • Faire des pull requests pour valider les modifications avant la fusion.

4. 🛠 Tutoriel pratique

Résumé du travail : Simuler un conflit Git et le résoudre.

Étape 1 : Créer deux branches

git checkout -b feature-A

Modifier index.html et faire un commit :

echo "Version A" >> index.html
git add index.html
git commit -m "Ajout version A"

Revenir sur main et modifier la même ligne, puis commiter :

echo "Version principale" >> index.html
git add index.html
git commit -m "Ajout version principale"

Étape 2 : Fusionner pour générer un conflit

git merge feature-A

Git indiquera un conflit.

Étape 3 : Résoudre le conflit

  1. Ouvrir index.html.
  2. Garder ou fusionner la bonne version.
  3. Valider :
git add index.html
git commit -m "Résolution de conflit entre main et feature-A"

Étape 4 : Visualiser l’historique

git log --oneline --graph --decorate

Étape 5 : Bonnes pratiques

  • Toujours git pull avant de commencer à travailler.
  • Utiliser des messages clairs (convention : fix:, feat:, chore:).
  • Travailler par petits commits pour éviter les conflits massifs.

5. 🧾 Résumé et points-clés

  • Les conflits Git sont normaux lors du travail collaboratif.
  • Résoudre un conflit consiste à éditer le fichier et choisir la version correcte.
  • Utiliser git status pour voir les fichiers en conflit.
  • Maintenir un historique clair facilite la compréhension et la relecture du projet.