DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesDébuter avec Git : commits, branches et premier repo02 - Créer et Merger des Branches

Détails

  • 20 minutes
  • Débutant

Objectifs

  • Créer et lister les branches
  • Changer de branche
  • Merger des branches
  • Gérer le cycle de vie des branches
Module Débuter avec Git : commits, branches et premier repo

Exercice 02 : Créer et Merger des Branches

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Créer une nouvelle branche
  • ✅ Changer de branche et travailler dessus
  • ✅ Fusionner une branche dans main
  • ✅ Nettoyer les branches après merge
  • ✅ Comprendre quand et pourquoi utiliser les branches

Durée estimée : 20 minutes

Difficulté : ⭐⭐☆☆☆ (Débutant+)

Prérequis :

  • Avoir complété Exercice 01 (connaître les bases de Git)
  • Ou avoir un repository Git existant avec au moins 1 commit

📖 Contexte

Les branches vous permettent de :

  1. Travailler en parallèle - Plusieurs personnes sur différentes fonctionnalités
  2. Tester des idées - Expérimenter sans risque
  3. Organiser le travail - Features, bugfixes, releases séparées
  4. Code review - Vérifier le code avant de merger

Cet exercice vous montre comment créer, utiliser et merger des branches de la manière professionnelle.


📋 Énoncé

Vous allez :

  1. Créer le repository du Exercice 01 (si ce n'est pas fait)
  2. Créer une branche feature/documentation
  3. Ajouter du contenu sur cette branche
  4. Faire 2 commits
  5. Revenir sur main
  6. Merger la branche
  7. Vérifier l'historique
  8. Supprimer la branche devenue inutile

Résultat attendu :

  • 2 branches créées et mergées
  • Au moins 5 commits au total
  • main contient tous les changements

🔧 Matériel Nécessaire

  • Git : déjà installé (de Exercice 01)
  • Repository : ma-premiere-app (ou créer nouveau)
  • Éditeur : Notepad, nano, VS Code, ou autre
  • Terminal : même qu'avant
  • Temps : 30 minutes

🧭 Déroulement de l'exercice

Voici les grandes étapes à réaliser dans l'ordre. Chaque étape décrit ce que vous devez accomplir - à vous de trouver la commande. La solution complète est disponible si vous êtes bloqué.

Tâche 1 : Vérifier l'état du repository

Assurez-vous que vous avez bien un repository avec au moins 1 commit, et identifiez sur quelle branche vous vous trouvez.

Indice : Une commande liste toutes les branches locales et marque la branche courante avec un *.

Vérification : Vous devez voir * main (ou * master) dans la liste des branches.


Tâche 2 : Créer la branche feature/documentation

Créez une nouvelle branche nommée exactement feature/documentation. Elle doit apparaître dans la liste des branches sans que vous ayez changé de branche.

Indice : Il existe deux approches : créer la branche sans y basculer, ou créer ET basculer en une seule commande. Commencez par la première pour bien comprendre la différence.

Vérification : git branch doit lister feature/documentation ET * main (vous êtes encore sur main).


Tâche 3 : Basculer sur la nouvelle branche

Changez de branche pour vous retrouver sur feature/documentation. Confirmez que vous y êtes bien.

Indice : Il existe deux commandes équivalentes pour changer de branche : checkout (historique) et switch (moderne).

Vérification : L'astérisque * dans git branch doit être sur feature/documentation.


Tâche 4 : Travailler sur la branche - faire 2 commits

Créez un fichier CONTRIBUTING.md avec du contenu, faites un premier commit. Ensuite ajoutez du contenu supplémentaire et faites un deuxième commit.

Indice : Ces commits n'affectent PAS main. Vérifiez en basculant sur main et en consultant git log --oneline : vos nouveaux commits ne doivent pas apparaître sur main.

Vérification : Depuis feature/documentation, git log --oneline doit montrer 2 commits de plus que depuis main.


Tâche 5 : Revenir sur main et merger

Retournez sur main, puis intégrez les changements de feature/documentation dans main.

Indice : Pour merger une branche dans main, vous devez d'abord ÊTRE sur main. On merge DEPUIS la branche de destination, pas depuis la branche source.

Vérification : Après le merge, git log --oneline depuis main doit montrer les commits de votre feature.


Tâche 6 : Nettoyer - supprimer la branche mergée

Une branche mergée est inutile. Supprimez feature/documentation.

Indice : git branch a une option pour supprimer une branche locale. Elle refusera de supprimer une branche non-mergée (par sécurité).

Question à se poser : Pourquoi ne peut-on pas supprimer la branche sur laquelle on se trouve en ce moment ?

Vérification : git branch ne doit plus lister feature/documentation.


� Mini-Projet : Développer une fonctionnalité en isolation

Vous allez simuler le développement d'une nouvelle fonctionnalité sur une branche dédiée, puis l'intégrer proprement dans main.

Scénario : Votre projet a besoin d'une page "À propos" et d'une page "Contact". Chaque page doit être développée sur sa propre branche.

Ce que vous devez réaliser :

  1. Partez du repository ma-premiere-app avec au moins 1 commit sur main
  2. Créez une branche feature/about et ajoutez un fichier about.md avec 2 commits
  3. Revenez sur main et créez une branche feature/contact avec un fichier contact.md et 2 commits
  4. Mergez feature/about dans main
  5. Mergez feature/contact dans main
  6. Supprimez les deux branches feature
  7. Vérifiez l'historique final

Checkpoints de validation :

  • git log --oneline main affiche au moins 5 commits (1 initial + 2 par feature)
  • Les fichiers about.md ET contact.md existent dans main
  • git branch liste uniquement * main (plus de branches feature)
  • Chaque merge a été fait depuis main (pas l'inverse)
  • git log --oneline --graph montre deux lignes de branches qui convergent vers main
  • git status affiche "nothing to commit, working tree clean"

�📚 Étapes Détaillées

Étape 1 : Préparer le Repository

Objectif : S'assurer que vous avez un repository avec quelques commits

Instructions:

Si vous venez du Exercice 01, allez à l'Étape 2. Sinon :

  1. Aller dans votre repository :
bash
cd ma-premiere-app
  1. Vérifier que vous avez des commits :
bash
git log --oneline

Résultat attendu :

a7f3e1b Ajouter .gitignore
8b4a6c2 Ajouter script Python Hello World
3a2c8f7 Initialiser le projet avec README

Troubleshooting:

  • Problème : Pas de commits
  • Solution : Compléter Exercice 01 d'abord

Étape 2 : Lister les Branches Existantes

Objectif : Voir où vous êtes actuellement

Instructions:

  1. Lister toutes les branches locales :
bash
git branch

Résultat attendu :

* main

Explication :

  • L'astérisque * indique que vous êtes sur main
  • Généralement, vous commencez avec une branche main ou master

Étape 3 : Créer Une Branche de Fonctionnalité

Objectif : Créer une branche pour une nouvelle fonctionnalité

Instructions:

  1. Créer une branche appelée feature/documentation :
bash
git branch feature/documentation
  1. Vérifier qu'elle a été créée :
bash
git branch

Résultat attendu :

  feature/documentation
* main

Note : La branche existe maintenant, mais vous êtes toujours sur main.


Étape 4 : Changer de Branche

Objectif : Basculer vers la nouvelle branche

Instructions:

  1. Changer vers feature/documentation :
bash
git checkout feature/documentation

Alternativement (syntaxe moderne) :

bash
git switch feature/documentation
  1. Vérifier que vous êtes sur la bonne branche :
bash
git branch

Résultat attendu :

* feature/documentation
  main

L'astérisque est maintenant sur feature/documentation.


Étape 5 : Travailler sur la Branche

Objectif : Ajouter du contenu spécifique à cette branche

Instructions:

  1. Créer un fichier CONTRIBUTING.md :
bash
echo "# Guide de Contribution

Merci de contribuer à ce projet!

## Processus
1. Fork le repo
2. Créer une branche feature
3. Faire vos changements
4. Faire une Pull Request
" > CONTRIBUTING.md
  1. Vérifier le contenu :
bash
cat CONTRIBUTING.md
  1. Vérifier le statut Git :
bash
git status

Résultat attendu :

On branch feature/documentation

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        CONTRIBUTING.md

nothing added to commit but untracked files present (tracking starts after first commit)

Étape 6 : Faire le Premier Commit sur la Branche

Objectif : Enregistrer vos changements

Instructions:

  1. Ajouter et committer :
bash
git add CONTRIBUTING.md
git commit -m "Ajouter guide de contribution"

Résultat attendu :

[feature/documentation 5b2c9d8] Ajouter guide de contribution
 1 file changed, 8 insertions(+)
 create mode 100644 CONTRIBUTING.md

Étape 7 : Faire un Deuxième Commit

Objectif : Ajouter plus de contenu pour simuler le travail

Instructions:

  1. Créer un fichier INSTALL.md :
bash
echo "# Installation

## Prérequis
- Python 3.8+

## Étapes

1. Clone le repo
2. Installer les dépendances : pip install -r requirements.txt
3. Lancer l'app : python main.py
" > INSTALL.md
  1. Ajouter et committer :
bash
git add INSTALL.md
git commit -m "Ajouter instructions d'installation"

Résultat attendu :

[feature/documentation 7c3f1e9] Ajouter instructions d'installation
 1 file changed, 7 insertions(+)
 create mode 100644 INSTALL.md

Étape 8 : Vérifier l'Historique de la Branche

Objectif : Voir tous les commits de cette branche

Instructions:

  1. Voir l'historique complet :
bash
git log --oneline

Résultat attendu :

7c3f1e9 Ajouter instructions d'installation
5b2c9d8 Ajouter guide de contribution
a7f3e1b Ajouter .gitignore
8b4a6c2 Ajouter script Python Hello World
3a2c8f7 Initialiser le projet avec README
  1. Voir les commits de main que vous avez laissés derrière :
bash
git log main --oneline

Résultat attendu :

a7f3e1b Ajouter .gitignore
8b4a6c2 Ajouter script Python Hello World
3a2c8f7 Initialiser le projet avec README

Explication :

  • feature/documentation a 2 commits supplémentaires
  • main n'a pas bougé

Étape 9 : Revenir sur Main

Objectif : Retourner à la branche main pour faire le merge

Instructions:

  1. Changer vers main :
bash
git checkout main

ou

bash
git switch main
  1. Vérifier les fichiers :
bash
ls -la

Résultat attendu (Windows - dir) :

README.md
main.py
.gitignore
.git

Observation importante :

Les fichiers CONTRIBUTING.md et INSTALL.md ont disparu !

C'est parce que vous avez changé de branche. Ces fichiers n'existent que sur feature/documentation.


Étape 10 : Merger la Branche

Objectif : Intégrer les changements de feature/documentation dans main

Instructions:

  1. Vérifier que vous êtes sur main :
bash
git branch

Résultat attendu :

  feature/documentation
* main
  1. Merger feature/documentation :
bash
git merge feature/documentation

Résultat attendu :

Updating a7f3e1b..7c3f1e9
Fast-forward
 CONTRIBUTING.md | 8 +++++++
 INSTALL.md      | 7 +++++++
 2 files changed, 15 insertions(+)
 create mode 100644 CONTRIBUTING.md
 create mode 100644 INSTALL.md

Explication :

  • Fast-forward = Les commits de feature/documentation ajoutés directement à main
  • Les deux fichiers sont maintenant sur main

Étape 11 : Vérifier que le Merge a Réussi

Objectif : Confirmer que les changements sont sur main

Instructions:

  1. Vérifier que les fichiers existent :
bash
ls -la

Résultat attendu :

CONTRIBUTING.md
INSTALL.md
README.md
main.py
.gitignore
.git
  1. Vérifier l'historique :
bash
git log --oneline

Résultat attendu :

7c3f1e9 Ajouter instructions d'installation
5b2c9d8 Ajouter guide de contribution
a7f3e1b Ajouter .gitignore
8b4a6c2 Ajouter script Python Hello World
3a2c8f7 Initialiser le projet avec README

Main a maintenant tous les commits !


Étape 12 : Supprimer la Branche

Objectif : Nettoyer les branches devenues inutiles

Instructions:

  1. Lister les branches :
bash
git branch

Résultat attendu :

  feature/documentation
* main
  1. Supprimer feature/documentation :
bash
git branch -d feature/documentation

Résultat attendu :

Deleted branch feature/documentation (was 7c3f1e9).
  1. Vérifier la suppression :
bash
git branch

Résultat attendu :

* main

Seule main reste.


✅ Vérification du Résultat

Pour vérifier que vous avez réussi :

bash
# Vérifier les branches
git branch                    # Doit montrer seulement main

# Vérifier l'historique
git log --oneline             # Doit montrer 5 commits

# Vérifier les fichiers
ls -la                        # Doit montrer CONTRIBUTING.md et INSTALL.md

# Vérifier un commit spécifique
git show 5b2c9d8              # Doit montrer le commit de contribution

Checklist finale :

  • ✅ Branche feature/documentation créée et supprimée
  • ✅ 2 commits faits sur la branche
  • ✅ Merge réussi vers main
  • ✅ 5 commits visibles dans l'historique
  • ✅ Fichiers CONTRIBUTING.md et INSTALL.md présents dans main

🎮 Défi Bonus

Défi 1 : Créer et merger plusieurs branches

bash
# Créer une branche de bugfix
git branch bugfix/typo

# Changer vers la branche
git checkout bugfix/typo

# Faire un commit
echo "Correction : typo dans README" >> README.md
git add README.md
git commit -m "Fixer typo dans README"

# Revenir à main
git checkout main

# Merger
git merge bugfix/typo

# Nettoyer
git branch -d bugfix/typo

Défi 2 : Visualiser l'historique avec graphique

bash
# Voir l'historique en arbre (si vous aviez eu plusieurs branches actives)
git log --graph --oneline --all

# Voir aussi les branches et leurs relationships
git branch -v

Défi 3 : Expérimenter avec git checkout

bash
# Voir tous les commits avec plus de détails
git log --oneline --all --graph

# Visiter un commit ancien sans merger
git checkout <commit-hash>

# Revenir à main
git checkout main

💡 Points Clés à Retenir

  1. Branches isolées : Les changements d'une branche n'affectent pas les autres
  2. Checkout vs Merge : Checkout = changer de branche, Merge = fusionner
  3. Fast-forward : Quand possible, Git remet simplement le pointeur en avant
  4. Branches locales : Par défaut, les branches sont locales à votre ordinateur
  5. Nettoyage : Supprimer les branches après merge garde le repo propre

🎯 Prochaines Étapes

  • ✅ Vous savez créer et merger des branches
  • 🔜 Exercice suivant : Résoudre les conflits de fusion
  • 🚀 Index des exercices : Tous les exercices

Excellent travail ! Vous comprenez maintenant comment travailler avec les branches ! 🎉

Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🔧 Matériel Nécessaire
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Vérifier l'état du repository
  • Tâche 2 : Créer la branche feature/documentation
  • Tâche 3 : Basculer sur la nouvelle branche
  • Tâche 4 : Travailler sur la branche - faire 2 commits
  • Tâche 5 : Revenir sur main et merger
  • Tâche 6 : Nettoyer - supprimer la branche mergée
  • � Mini-Projet : Développer une fonctionnalité en isolation
  • �📚 Étapes Détaillées
  • Étape 1 : Préparer le Repository
  • Étape 2 : Lister les Branches Existantes
  • Étape 3 : Créer Une Branche de Fonctionnalité
  • Étape 4 : Changer de Branche
  • Étape 5 : Travailler sur la Branche
  • Processus
  • Étape 6 : Faire le Premier Commit sur la Branche
  • Étape 7 : Faire un Deuxième Commit
  • Prérequis
  • Étapes
  • Étape 8 : Vérifier l'Historique de la Branche
  • Étape 9 : Revenir sur Main
  • Étape 10 : Merger la Branche
  • Étape 11 : Vérifier que le Merge a Réussi
  • Étape 12 : Supprimer la Branche
  • ✅ Vérification du Résultat
  • 🎮 Défi Bonus
  • 💡 Points Clés à Retenir
  • 🎯 Prochaines Étapes