GITFLOW – Le plugin
Sommaire
1. Qu’est ce que Gitflow ?
2. Le pattern
1. Branches principales
2. Branches de développement
3. Branches version...
Qu’est ce que Gitflow ?
Gitflow est un plugin de git crée par Atlassian
Son but: Simplifier la gestion des branches
Avanta...
Master : Versions de prods
Develop : Environnement de travail
Deux branches sont conservées en permanence
Le pattern
Branc...
Le pattern
Branches de développement
Nouvelle fonctionnalité
création d’une branche feature
Fonctionnalité terminée
fusion...
Les features n’intéragissent jamais directement
avec la branche master.
Le pattern
Branches de développement
Le pattern
Branches version
En fin de sprint on crée une branche release
Elle contient toutes les features terminées du sp...
Le pattern
Branches version
En fonction du besoin, la plateforme de préproduction
• Est reliée à la feature pour les tests...
Le pattern
Branches de maintenance
Les branches hotfix sont utilisées pour les petits bugs
• Inférieur à 1h de dev
• Urgen...
Démonstration
Initialisation
Je crée un dossier vide appelé test-gitflow, et je lance un Git Bash.
git flow : Liste les co...
git flow init : Initialise mon projet avec l’arborescence de git flow
Le programme va me demander le nom de chaque branche...
Via git branch, on constate que git flow a bien créé les deux branches :
• dev
• master
On est placé automatiquement sur l...
git flow feature start : Crée une nouvelle branche feature
Le programme me demande le nom
Gitflow nous place directement d...
git flow feature finish : Ferme la branche et merge sur dev
Gitflow nous repositionne directement dans la branche dev
et s...
Ici, la branche 1.0 à bien été créé
On est placé directement sur la branche de la release 1.0
git flow release start : Cré...
La release a été fusionnée, puis supprimée.
Un tag 1.0 a été créé sur master.
git flow release finish : Ferme la release e...
• Les fermetures de feature/release ne pushent automatiquement
• Ne pas oublier git push --tags pour
retrouver les tags da...
• SourceTree est une interface graphique pour Git
• Elle inclut nativement le plugin Gitflow
• On y trouve une interface v...
Complément
Interface graphique
Complément
Interface graphique
Le « remisage » est une fonctionnalité native à Git.
Elle permet :
- de stocker des modifications
- de mettre le projet à ...
Les stashs sont comme des commits ordinaires
hors de tout historique et de toute branche
on peut leur appliquer : merge, c...
git stash : Sauvegarde votre copie de travail
Votre répertoire de travail est propre :
Complément
Remisage
git stash list : Voir la liste des stashes avec
Complément
Remisage
git stash apply <nom> : Applique la remise sur la copie de travail
La stash est conservée dans la liste
git stash drop <st...
Si un stash devient trop important,
il est possible d’en faire une branche avec
git stash branch <stash_name>
Défaire l'ef...
Conclusion
Gitflow, c’est donc :
• Un gain de temps
• Une meilleure organisation
• Le respect des standards
• Et encore pl...
Des questions ?
Questions
Prochain SlideShare
Chargement dans…5
×

Gitflow

418 vues

Publié le

Presentation of GitFlow and SourceTree

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
418
Sur SlideShare
0
Issues des intégrations
0
Intégrations
145
Actions
Partages
0
Téléchargements
9
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Organise le repo en créant un workflow
  • Branche stable : master = prod.
    Il est très facile d'assigner un numéro de version à chaque commit sur la branche principale.
  • Les branches Feature combinées à la branche de développement correspondent au workflow Feature Branch (le workflow classique).

    Au lieu de se détacher de la branche master, les branches de fonctionnalité utilisent la branche de développement comme origine.
  • Les branches Feature combinées à la branche de développement correspondent au workflow Feature Branch (le workflow classique).

    Au lieu de se détacher de la branche master, les branches de fonctionnalité utilisent la branche de développement comme origine.
  • Une fois prête à être lancée, on merge dans la branche stable et on lui donne un numéro de version.
    Une release peut correspondre à la fin d’un sprint ou d’un ensemble de user stories interdépendantes.
    Cette branche est l’endroit où on nettoiera la livraison, où on testera tout, où on mettra à jour la documentation, et où on fera tous les autres préparatifs pour la livraison à venir.
    Toute fonctionnalité absente de la branche develop est repoussée jusqu’au prochain cycle de livraison.
  • Dès qu'une correction est prête, la branche doit être fusionnée dans la branche stable et dans la branche de développement (ou celle de version en cours), et la version de la branche stable devrait être incrémentée avec un numéro de version mise à jour.
    Il y a normalement une branche support qui doit passer par une feature
  • Cette branche correspond à la pré-prod
    Il est possible d’effectuer directement ici des correctifs avant mise en production : les modifications seront également fusionnés avec la branche de dev.
  • Visuellement, cela facilite les opérations de merge et de corrections.
  • Gitflow

    1. 1. GITFLOW – Le plugin
    2. 2. Sommaire 1. Qu’est ce que Gitflow ? 2. Le pattern 1. Branches principales 2. Branches de développement 3. Branches version 4. Branches de maintenance 3. Démonstration 1. Initialisation 2. Commandes principales 4. Complément 1. Remarques importantes 2. Interface graphique 3. Remisage
    3. 3. Qu’est ce que Gitflow ? Gitflow est un plugin de git crée par Atlassian Son but: Simplifier la gestion des branches Avantages : • Création de préfixes • Fusion de branches multiples • Applique le pattern reconnu gitflow
    4. 4. Master : Versions de prods Develop : Environnement de travail Deux branches sont conservées en permanence Le pattern Branches principales
    5. 5. Le pattern Branches de développement Nouvelle fonctionnalité création d’une branche feature Fonctionnalité terminée fusion à la branche Develop
    6. 6. Les features n’intéragissent jamais directement avec la branche master. Le pattern Branches de développement
    7. 7. Le pattern Branches version En fin de sprint on crée une branche release Elle contient toutes les features terminées du sprint En cas de bug, on peut la patcher Gitflow fusionnera les modifications sur Develop et Master
    8. 8. Le pattern Branches version En fonction du besoin, la plateforme de préproduction • Est reliée à la feature pour les tests spécifiques MOE • Est reliée à dévelop pour les tests globaux MOE • Est reliée à release pour les tests globaux MOA Preprod
    9. 9. Le pattern Branches de maintenance Les branches hotfix sont utilisées pour les petits bugs • Inférieur à 1h de dev • Urgence seulement C’est la seule branche liée directement à la branche stable (master).
    10. 10. Démonstration Initialisation Je crée un dossier vide appelé test-gitflow, et je lance un Git Bash. git flow : Liste les commandes disponibles
    11. 11. git flow init : Initialise mon projet avec l’arborescence de git flow Le programme va me demander le nom de chaque branche à créer. Ici, je ne modifie que le nom de la branche de « develop » par « dev » par convention PRECOM Démonstration Initialisation
    12. 12. Via git branch, on constate que git flow a bien créé les deux branches : • dev • master On est placé automatiquement sur la branche de dev Démonstration Initialisation
    13. 13. git flow feature start : Crée une nouvelle branche feature Le programme me demande le nom Gitflow nous place directement dans la branche test1 On peut travailler et faire des commits normalement Démonstration Initialisation
    14. 14. git flow feature finish : Ferme la branche et merge sur dev Gitflow nous repositionne directement dans la branche dev et supprime la branche feature Démonstration Commandes principales
    15. 15. Ici, la branche 1.0 à bien été créé On est placé directement sur la branche de la release 1.0 git flow release start : Crée la release à partir de la dev Démonstration Commandes principales
    16. 16. La release a été fusionnée, puis supprimée. Un tag 1.0 a été créé sur master. git flow release finish : Ferme la release et merge sur master + dev Démonstration Commandes principales
    17. 17. • Les fermetures de feature/release ne pushent automatiquement • Ne pas oublier git push --tags pour retrouver les tags dans capistrano Complément Remarques importantes
    18. 18. • SourceTree est une interface graphique pour Git • Elle inclut nativement le plugin Gitflow • On y trouve une interface visuelle des détails des modifications et des différences de versions Complément Interface graphique
    19. 19. Complément Interface graphique
    20. 20. Complément Interface graphique
    21. 21. Le « remisage » est une fonctionnalité native à Git. Elle permet : - de stocker des modifications - de mettre le projet à jour pendant une tâche - de changer de branche en cours de travail Complément Remisage
    22. 22. Les stashs sont comme des commits ordinaires hors de tout historique et de toute branche on peut leur appliquer : merge, checkout, patch, etc... Complément Remisage
    23. 23. git stash : Sauvegarde votre copie de travail Votre répertoire de travail est propre : Complément Remisage
    24. 24. git stash list : Voir la liste des stashes avec Complément Remisage
    25. 25. git stash apply <nom> : Applique la remise sur la copie de travail La stash est conservée dans la liste git stash drop <stash_name> : Supprime la remise Complément Remisage
    26. 26. Si un stash devient trop important, il est possible d’en faire une branche avec git stash branch <stash_name> Défaire l'effet d'une remise git stash show -p <stash_name> | git apply -R Pour appliquer puis supprimer une stash git stash pop <stash_name> Complément Remisage
    27. 27. Conclusion Gitflow, c’est donc : • Un gain de temps • Une meilleure organisation • Le respect des standards • Et encore plein de choses à découvrir dans le monde merveilleux de git
    28. 28. Des questions ? Questions

    ×