Comment accélérer et mettre à jour une branche Git
Agence web » Actualités du digital » Comment accélérer et mettre à jour une branche Git

Comment accélérer et mettre à jour une branche Git

Lorsque vous travaillez avec des branches Git, il est souvent nécessaire de conserver différentes branches telles que les branches « develop », « release » ou « staging ». Avec Git, il est facile d’avancer rapidement une branche pour la maintenir à jour avec une autre branche, comme la mise à jour de la branche de publication pour inclure les modifications sur la mise en scène.

Transfert rapide d’une branche Git

Dans Git, les branches ne sont que des pointeurs vers un commit spécifique, appelé HEAD de la branche. La branche est simplement une étiquette qui peut changer lorsque la branche est mise à jour avec de nouveaux commits ou fusionnée avec une autre.

Pour fusionner deux branches divergentes, vous pouvez utiliser git merge. Habituellement, cela crée un « commit de fusion » qui combine les historiques des deux branches, comme les commits d’une branche de fonctionnalité qui sont tirés dans la branche principale avec une demande de tirage.

Cependant, si les deux branches ont le même historique, Git effectuera une fusion rapide spéciale. Dans l’exemple ci-dessus, le release branche HEAD est inclus dans develop, ce qui signifie qu’il n’y a pas besoin d’un commit de fusion. Plutôt, release est mis à jour pour pointer vers develop.

Il n’y a pas de spécial git fast-forward commande pour cela; c’est une simple fusion comme une autre. Lors de la fusion, vous voulez vérifier la branche qui va recevoir les changements. Dans ce cas, release est la branche en cours de mise à jour, nous vérifions donc la version :

git checkout release

Ensuite, nous pouvons fusionner la branche develop dans celle-ci, ce qui effectuera l’avance rapide :

git merge develop

Si vous utilisez un client d’interface graphique Git, ce processus peut être plus intuitif. La plupart des clients auront la possibilité de cliquer avec le bouton droit sur la branche obsolète et de la mettre à jour avec celle sur laquelle vous travaillez.

Succursales distantes à transfert rapide

Une chose à noter est que l’avance rapide ne mettra à jour que votre référentiel local. Vous devrez pousser vers Github pour mettre à jour la télécommande. Si vous utilisez un client graphique, vous pouvez voir l’étiquette du référentiel distant obsolète jusqu’à ce que vous poussiez.

Le transfert rapide de la branche ne crée pas de commit, mais il devrait toujours déclencher des pipelines CI/CD tels que les actions Github. Si ce n’est pas le cas, il existe une option pour toujours créer un commit de fusion :

git merge --no-ff

Cela peut également être utile dans certains cas pour maintenir une topologie de branche plus explicite, où les branches de fonctionnalités seront toujours séparées de la branche principale et créeront un commit de fusion lorsqu’elles sont combinées. Par défaut, si vous n’avez rien changé sur la branche principale lorsque vous fusionnez la fonctionnalité, Git avancera rapidement la branche principale au lieu de créer le commit de fusion habituel auquel vous pourriez vous attendre. Le --no-ff flag empêchera ce comportement.

Alternativement, si vous souhaitez essayer d’avancer rapidement et échouer si un commit de fusion est requis, vous pouvez utiliser le --ff-only drapeau.

★★★★★