Formation Git en vidéo
👆 Cliquez sur l'image pour découvrir la formation en vidéo

Fusion de branches dans Git

Les branches dans Git nous permettent d’essayer du code. Lorsque le test est terminé, nous avons deux choix.

Nous décidons de supprimer la branche car nous considérons que le test n’aboutit à rien de bon et aucune amélioration n’est constatée 🗑.

Ou alors, les choses se passent bien et nous allons vouloir fusionner notre branche avec la branche principale ⭐️.

La suppression d’une branche est développée dans la prochaine leçon.

Dans celle-ci, nous allons apprendre à fusionner des branches.

Comment fusionner des branches ?

Dans Git, il est très aisé de fusionner des branches.

Il suffit d’utiliser la commande qui suit.

git merge <branche>

Fusionner la branche « nouvelle » de notre projet Git

Nous allons utiliser cette commande pour notre projet Git et allons fusionner la branche nouvelle avec la principale.

Pour ce faire, il faut se positionner sur la branche qui « recevra la fusion ». Dans notre cas nous allons réceptionner le contenu de nouvelle dans notre branche principale master.

Vérifiez donc que vous êtes bien dans la branche master.

git branch
* master
  nouvelle

Ensuite, tapez la commande suivante.

git merge nouvelle

Que se passe-t-il ?

La seule chose qui a été modifiée dans les deux branches est le contenu du fichier names.js.

Si ce fichier avait été modifié juste dans la branche nouvelle, la fusion aurait fonctionné parfaitement.

Mais dans notre cas, ce fichier a été modifié dans les deux branches.

Par conséquent, la fusion a fonctionné, mais il faut résoudre les conflits.

// Fichier names.js
var name1 = "Henrique";
var name2 = "Mélanie";
var name3 = "Sabrina";
<<<<<<< HEAD
console.log(name1);
=======
var name4 = "Fatima";
var name5 = "João";
>>>>>>> nouvelle

On nous informe ici du contenu qui apparait dans une branche, mais pas dans l’autre.

On modifie le fichier et l’on garde celui que l’on souhaite.

// Fichier names.js
var name1 = "Henrique";
var name2 = "Mélanie";
var name3 = "Sabrina";
console.log(name1);
var name4 = "Fatima";
var name5 = "João";

Pour notre exercice, nous allons faire le choix de tout garder.

Par contre, vous pouvez effacer les commentaires générés par Git.

Et ensuite, on fait un commit.

git commit -am "Fusion de la branche nouvelle"

Vérifier l’historique

Maintenant, tapez la commande ci-dessous.

git log --oneline --graph 
*   ef2a68d (HEAD -> master) Fusion de la branche nouvelle
|\  
| * 8efc404 (nouvelle) Ajouter un autre nouveau nom
| * bc64024 Ajouter un nouveau nom
* | fc41856 Le console.log de name1
|/  
* bf588f5 Plusieurs modifications
* 20102d5 Revert "Enregistrer console.log"
* e63ba38 Enregistrer console.log
* 6210603 Enregistrer name3
* ce7aad1 Enregistrer name2
* 5987a15 Enregistrer name1
* 7dd8a1c Ajouter le dossier fruits
* c12ddda On ajoute names.js
* 308576e Utilisation des options -am
* 0032296 Création de deux fichiers

Très intéressant 🧐 !

Nous voyons bien la création de la branche nouvelle à partir du commit bf588f5 et la fusion au commit ef2a68d.

Illustration

Nous allons illustrer l’état de notre projet Git.

Fusionner la branche nouvelle dans le branche master