Skip to content

Instantly share code, notes, and snippets.

@deild
Last active February 14, 2019 09:29
Show Gist options
  • Select an option

  • Save deild/05bc4794de1aefc7b50d62ab0a25ef55 to your computer and use it in GitHub Desktop.

Select an option

Save deild/05bc4794de1aefc7b50d62ab0a25ef55 to your computer and use it in GitHub Desktop.

le modèle de branchement et de workflow Git Simple

La branche principale

Le workflow n'utilise qu'une seule branche éternelle.

branches de fonctionnalité

Les branches de fonctionnalité sont le support du travail de développement au jour le jour, c'est pourquoi elles sont de loin les plus courantes de toutes les branches. Elles sont utilisés pour développer de nouvelles fonctionnalités et des corrections de bogues pour la prochaine version. Elles sont généralement nommés selon feature/mafonctionnalité.

Démarrer une branche de fonctionnalité

Pour démarrer une branche de fonctionnalité, il suffit de créer une nouvelle branche à partir du master :

$ git checkout -b feature/mafonctionnalité master

Finaliser une branche de fonctionnalité

Une fois que le travail sur la fonctionnalité est terminé, il faut l'intégrer de nouveau dans master. Utiliser la commande rebase de Git (avec le commutateur -i, signifiant interactif) pour intégrer la branche de fonctionnalité avec master :

$ git checkout feature/mafonctionnalité
$ git rebase -i master
$ git checkout master
$ git merge --ff-only feature/mafonctionnalité
$ git push origin master
$ git branch -d feature/mafonctionnalité

Avantages :

  • Rebaser avant l'intégration avec master vous permet de nettoyer l'historique de la branche avant de le rendre public, ce qui se traduit par un meilleur historique final atterrissant sur master.
  • L'historique linéaire rend les choses plus simples et plus faciles à trouver, surtout quand on regarde l'historique par fichier.

Inconvénients :

  • La réinitialisation de l'ensemble de la fonctionnalité nécessite la réinitialisation de plusieurs validations.

Si la branche de fonctionnalité a été poussée vers le référentiel central, vous devez maintenant la supprimer :

$ git push origin :feature/mafonctionnalité

Branches de publication

La convention d'appellation pour celles-ci est release/<numéro-de-version>.

Démarrer une branche de publication

Par exemple, nous démarrons ici la branche pour la version 2.3.0 sur un commit avec hash 9efc5d :

$ git checkout -b release/2.3.0 9efc5d

Finaliser une branche de publication

Une fois le processus de validation terminé, la pointe de la branche est étiquetée avec le numéro de version. Après cela, la branche doit être fusionnée en master pour être versionnée en permanence :

$ git checkout release/2.3.0
$ git tag 2.3.0
$ git checkout master
$ git merge release/2.3.0
$ git push --tags origin master
$ git branch -d release/2.3.0

Encore une fois, si vous avez poussé la branche release vers le référentiel central, vous devez maintenant la supprimer :

$ git push origin :release/2.3.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment