Maitriser le Git flow
Tout développeur utilise ou utilisera Git à un moment donné de sa carrière. La plupart du temps, ils devront travailler avec d'autres personnes sur le même dépôt Git. Pour éviter que ce soit un champ de bataille de branche et commit, voici un guide simple sur la façon de contribuer correctement sur un dépôt Git.
Bases
Tout d'abord, le dépôt Git devrait avoir une branche par défaut souvent appelée master
ou main
(cela peut être n'importe quoi d'autre tant que tout le monde s'accorde sur le nom).
Ensuite, une deuxième branche utilisée à des fins de développement. Celle-ci suivra de très près la branche par défaut. Elle sera un réceptacle pour tout nouveau développement. Cette branche est la seule autorisée à être fusionnée sur la branche par défaut.
Enfin, toutes les autres branches entrent dans la dernière catégorie. Ce sont des fonctionnalités, des corrections de bogues et autres.
Remarque : Seules les branches HotFix sont autorisées à contourner la branche de développement.
Voici un exemple de dépôt Git simple
Exemple complet d'un cycle de vie de d'un dépôt
Initialisation d'un dépôt
La première chose à faire lors de la création d'un nouveau référentiel est d'initialiser la structure de base.
Créez le dépôt Git :
Vous voudrez peut-être créer vos premiers fichiers. Comme le README.md
/.gitignore
et certains fichiers de package comme package.json
ou pom.xml
.
Créez ensuite le commit initial du dépôt avec ces fichiers :
Créez enfin la branche de développement :
Le référentiel devrait ressembler à :
Initialisation de la branche de développement
Maintenant que vous avez notre structure de base sur le dépôt Git, il est temps d'initialiser la branche de développement.
Créer en premier la branche développement :
Parfois, vous voudrez peut-être ajouter un commit initial sur la branche de développement avec la modification de la version actuelle dans votre fichier de package package.json
, pom.xml
ou autre.
Editez ces fichiers puis créez un commit :
Le dépôt devrait ressembler à :
Ajouter la première fonctionnalité
Créons maintenant la première fonctionnalité de notre application.
Vérifiez que vous êtes bien sur la branche développement :
Résultat :
Si ce n'est pas le cas, changer pour la branche de développement.
Ensuite, créer une branche de fonctionnalité :
Maintenant, écrivez la fonctionnalité et commitez de temps en temps avec :
Le dépôt devrait ressembler à :
Travailler sur une fonctionnalité requise
Vous travailliez sur la première fonctionnalité mais vous réalisez que vous en aviez besoin d'une autre pour continuer.
/!\ Assurez-vous que vous n'avez pas de modifications non commités avant de changer de branche
Reproduisez les mêmes commandes que pour la première fonctionnalité : - Checkout sur la branche développement - Ensuite, création d'une branche de fonctionnalité - Écrivez votre code et créez des commits
Le dépôt devrait ressembler à :
Fusionner la fonctionnalité requise
Maintenant que vous avez terminé votre travail sur la fonctionnalité requise, il est temps de fusionner le code avec la branche de développement.
Vous devez d'abord rebaser la branche pour supprimer tous les commits inutiles :
Le premier commit doit toujours être sélectionné. Tous les autres commits peuvent être écrasés.
Le dépôt devrait ressembler à :
Passez à la branche de développement et fusionnez la branche de fonctionnalité requise :
Le dépôt devrait ressembler à :
Poursuivre le travail sur la première fonctionnalité
Maintenant que vous avez terminé la fonctionnalité requise, vous souhaitez rebaser votre travail actuel sur la première fonctionnalité pour récupérer le contenu de la fonctionnalité requise.
- Changement pour la branche de fonctionnalités
- La rebaser sur la branche de développement
Ce que fait cette commande, c'est prendre tous les commits de la branche de fonctionnalité et les appliquer à la fin de la branche de développement.
Le dépôt devrait ressembler à :
Fusion de la première fonctionnalité
Maintenant que vous avez terminé votre travail sur la première fonctionnalité, il est temps de fusionner le code avec la branche de développement.
Vous devez d'abord rebaser la branche pour supprimer tous les commits inutiles :
Le premier commit doit toujours être sélectionné. Tous les autres commits peuvent être écrasés.
Le dépôt devrait ressembler à :
Passez à la branche de développement et fusionnez la branche de fonctionnalité requise :
Le dépôt devrait ressembler à :
Correction d'un problème critique
Un problème critique a été découvert sur l'application de production et vous devez produire rapidement un correctif. Vous n'avez pas le temps de parcourir tout le processus de publication.
- Changement pour la branche par défaut
- Créez une nouvelle branche de correctifs et changer pour la branche
- Faire la correction
- Fusionner dans la branche par défaut
- Taguez votre nouvelle version
Le dépôt devrait ressembler à :
Publier votre travail
Il est maintenant temps de publier tout ce travail acharné.
Vous devez d'abord fusionner la branche par défaut pour récupérer toutes les correctifs.
Le dépôt devrait ressembler à :
Et enfin, fusionnez votre développement sur la branche par défaut.
Le dépôt devrait ressembler à :
Nettoyer
Faisons un peu de nettoyage en supprimant certaines références inutilisées telles que les branches de fonctionnalités et de correctifs.
git branch -D feature/my-first-feature
git branch -D feature/my-required-feature
git branch -D hotfix/correct-critical-issue
Le référentiel devrait ressembler à :
Remarques
Tous les graphiques Git ont été générés avec Bit-Booster app