OS de votre poste :
Module 04 · Git & GitHub · TP 02

TP-02 — Branches et conflits

Préparation

Prérequis

Configuration pour Linux

Git installé et accès à GitHub pour les TP distants.

Guide : Préparer Git

Ouvrir le terminal Linux avec student.

Terminal Linux

su - student

Si student est déjà connecté, conserver cette session.

Dépendances

Configuration pour Linux

Avec le compte de travail, créer le dossier du TP puis s’y placer :

Terminal Linux

mkdir -p ~/devops-formation/tp-04-02
cd ~/devops-formation/tp-04-02

Si ce dossier existe, inspecter les anciens fichiers avant de reprendre.

Aucun service Linux à installer pour ce TP. Les commandes Git s’exécutent dans le terminal préparé ci-dessus.

Réutiliser le dépôt du parcours Git indiqué dans les étapes ; ne pas créer un dépôt concurrent vide. GitHub est le dépôt distant utilisé pour les push.

Étape 1 : Préparer une base commune

mkdir tp-git-conflit
cd tp-git-conflit
git init -b main
git config user.name "Apprenant"
git config user.email "apprenant@example.com"
cat > merge.txt <<'EOF'
Version initiale.
EOF
git add merge.txt
git commit -m "Ajoute le texte initial"

Étape 2 : Modifier la même ligne sur deux branches

git switch -c feature/texte
cat > merge.txt <<'EOF'
Version proposée par la fonctionnalité.
EOF
git add merge.txt
git commit -m "Modifie le texte côté feature"
git switch main
cat > merge.txt <<'EOF'
Version modifiée sur main.
EOF
git add merge.txt
git commit -m "Modifie le texte côté main"
git merge feature/texte
CONFLICT (content): Merge conflict in merge.txt
Automatic merge failed; fix conflicts and then commit the result.

Les deux branches modifient volontairement la même ligne : le conflit est reproductible. Le scénario du STRICT peut varier selon les modifications réellement effectuées.

Étape 3 : Résoudre et terminer

git status
cat merge.txt
vim merge.txt
# Choisir le contenu final et retirer tous les marqueurs de conflit.
git add merge.txt
git commit -m "Résout le conflit de documentation"
git status
git log --oneline --graph --all
git branch -d feature/texte
Validation : aucun marqueur de conflit, répertoire propre et commit de fusion visible. Avant résolution, git merge --abort permet d’abandonner la fusion.

Nettoyage

Dépendances

Configuration pour Linux

Linux : effectuer le nettoyage du dépôt dans le terminal natif. Ne pas supprimer ~/.gitconfig, ~/.ssh ou les paquets utilisés par d’autres projets.

Nettoyage et conservation de l’environnement

Conserver le dépôt de formation utilisé par les TP suivants et vos preuves de validation. Retirer les réglages temporaires de diagnostic, fermer les sessions et vérifier git status. À la fin de la séquence, supprimer seulement le clone et les ressources GitHub créés pour la formation après sauvegarde ; ne pas toucher aux projets personnels, à la configuration globale de Git ni aux clés SSH réutilisées. Si une clé ou un jeton était exclusivement dédié au TP, le révoquer côté GitHub avant de retirer sa copie locale.

Prérequis

Configuration pour Linux

Conserver Git et le dépôt du parcours pour les TP suivants. Le retrait éventuel des outils se décide après sauvegarde des travaux.

Guide : Préparer Git