Dans tous les projets utilisant Git, il est obligatoire d’utiliser plusieurs branches pour gérer les différents environnement de ce projet. Les branches les plus courante sont :
- master, pour la dernière version stable du projet.
- prod (et preprod), pour les différents environnements du projet
- develop, pour le développement de la nouvelle version
- feature/XXX, pour le développement d’une fonctionnalité spécifique.
- release/XXX, pour relier la branche develop à la branche master, dans le cadre de l’update de la version stable de l’application.
- hotfix/XXXX, pour publier rapidement une correction de bug depuis les branches master, ou develop.
Lors de la découverte d’un bug dans une branche donné (master pour notre exemple), si le bug est corrigé dans cette branche, il faut aussi appliquer cette correction dans les branches des différents environnements (develop, prod et preprod).
Pour éviter d’utiliser un merge, qui n’est pas la meilleure solution dans ce cas-là, Git nous propose la commande cherry-pick.
Cette commande est moins intrusive que merge, et permet de sélectionner un commit quelconque, de n’importe quelle branche, et de l’appliquer sur la branche actuelle.
Voici ci-dessous, un exemple avec a effectuer :
$ git checkout develop
$ git cherry-pick 0b7bbbfd9