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 -