Fusionner des branches sans avance rapide dans Git

Azhar Bashir Khan 3 avril 2022
Fusionner des branches sans avance rapide dans Git

Ce tutoriel verra comment fusionner des branches sans avance rapide dans Git.

Nous utilisons Git pour travailler dans un environnement de développement collaboratif. Nous créons de nombreuses branches à des fins différentes, et finalement, nous fusionnons ces branches dans la branche principale pour fournir une version de version.

Nous fusionnons des branches dans Git avec avance rapide ou sans avance rapide.

Nous allons maintenant illustrer cela par un exemple.

Utilisation de la commande git merge avec et sans l’option --no-ff (pas d’avance rapide) dans Git

Dans un environnement de développement collaboratif, nous créons souvent plusieurs branches dans Git, à des fins différentes. Nous fusionnons ensuite ces branches dans la branche principale pour fournir une version de version.

Parfois, le commit HEAD de notre branche principale est un ancêtre du commit de la branche que nous essayons de fusionner. Dans de tels cas, la fusion est effectuée avec une avance rapide.

Une fusion rapide vers l’avant peut se produire lorsqu’un chemin linéaire part de la pointe de la branche actuelle vers la branche cible. Supposons que nous ayons la branche feature1 et que nous la fusionnions dans main, notre branche principale.

Supposons maintenant que le commit HEAD de la branche main soit un ancêtre du commit de la branche feature1, celle que nous voulons fusionner.

Dans de tels cas, au lieu de fusionner les branches, tout ce que Git a à faire pour intégrer les historiques est de déplacer (c’est-à-dire) avancer rapidement la pointe de la branche actuelle jusqu’à la pointe de la branche cible.

Ainsi, dans notre cas, avec l’avance rapide, le HEAD actuel de la branche main sera déplacé jusqu’à la pointe de la branche feature1.

Veuillez voir ci-dessous une illustration de la situation des branches, main et feature1, avant la fusion.

              E---F---G feature1
             /
A---B---C---D main

Ainsi, une avance rapide se produira lorsque nous fusionnerons les deux branches à l’aide de la commande git merge.

Pour faire une fusion, nous exécutons la commande do comme suit.

$ git merge feature1

Après l’exécution de la commande, la branche main sera avancée rapidement.

Veuillez voir l’illustration de l’avance rapide ci-dessous.

              E---F---G feature1, main
             /
A---B---C---D

Ainsi, maintenant le courant de la branche principale HEAD est maintenant avancé rapidement. Aucun commit de fusion n’est créé dans ce cas.

Parfois, nous pouvons vouloir faire une fusion réelle au lieu d’une avance rapide. Disons que nous voulons conserver la topologie de branche.

Dans un tel cas, on peut utiliser la commande git merge avec l’option --no-ff.

L’option de commande --no-ff provoque la création d’un commit de fusion dans tous les cas, même lorsque la fusion pourrait plutôt être résolue en avance rapide.

Ainsi, dans notre cas, pour effectuer une fusion sans avance rapide, nous devons procéder comme suit.

$ git merge --no-ff feature1

Ainsi, maintenant la commande git merge fusionne la branche feature1 dans la branche main et génère un commit de merge (même s’il s’agissait d’un fast forward merge).

Ceci est utile pour documenter toutes les fusions qui se produisent dans votre référentiel.

Ainsi, nous avons expliqué comment fusionner les branches sans avance rapide dans Git.

Pour plus d’informations, s’il vous plaît visitez -

  1. Git Merge
  2. git-merge

Article connexe - Git Merge