Git flow

neticoa_sn 1,163 views 25 slides May 30, 2017
Slide 1
Slide 1 of 25
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25

About This Presentation

Git-Flow est un flux de travail qui peut être utilisé pour effectuer des travaux de développement continu.

Il nous permet de simplifier ce processus et réduire le nombre de commandes à exécuter pour déployer notre travail.

Dans cette présentation , nous allons montrer comment il est fastid...


Slide Content

GIT FLOW


Mai 2017

Plan
1.Interro surprise :-)
2.git-flow Kesako ?
3.Etude de cas
4.Workflow ?
5.Les commandes git-flow
6.Démo - exemple
7.Conclusion
8.Question

Interro surprise

A quoi sert git ?

Kesako


Git-Flow est un flux de travail qui peut
être utilisé pour effectuer des travaux de
développement continu.

Etude de cas
Un projet A est composé de 5 features
réparties comme suit :
● Version 1.0
○Gestion des utilisateurs
○Gestion des comptes
●Version 2.0
○Gestion des tickets
○Gestion des appels
●Version 3.0
○Gestion multi pays

Etude de cas > Supposons que
●La version 1.0 est livrée au client & en
production
○Le client peut à tout moment retourner des
bugs bloquants - urgents - sécurité sur la
version 1.0

●La version 2.0 est en développement
mais on développe la version 3.0 en
parallèle

Etude de cas > On devrait pouvoir
●Complexité 1 : On devrait pouvoir
corriger les bugs urgents & déployer
chez le client sans attendre la
prochaine livraison

●Complexité 2: Développer les deux
versions en parallèle - les déployer
sans pour autant entrer en conflit avec
les autres développements et/ou
corrections de bugs urgents

Workflow


●Fonctionnalités
○Gestion des utilisateurs
○Gestion des comptes
○…

●Version - RC
○Version 1.0 - Version 2.0 - Version 3.0

Workflow > Comment faire ?

Workflow > une solution
détails de l’image

Workflow > Branching
●Master
○Branche de production
○doit toujours être stable
○protéger

●Develop
○Branche de développement continue toujours
avec la dernière version du code (validé !!!)
○Peut être utilisé pour CAQAO mais plus pour
test croisé interne
○Connu pour être instable

Workflow > Branching
●Features
○Créer des branches pour chaque feature
○Merge la fonctionnalité au niveau de develop
quand on finit
○Supprimer la branche
●Version / RC
○Créer une/des branches pour chaque version
○Merge la branche au master quand on finit
○Peut être utilisé comme preprod / test UAT
pour le client
●Bugs urgents
○Créer une branche pour chaque bugs urgents
○Merge la branche sur master/develop/RC
○Supprimer la branche

Workflow > Branching > git standard
Détail de l’image

Workflow > Branching > git standard

●Features :
○git checkout -b features-users #from develop
○coding
○git commit -m ‘commit message’ #Commit
○git checkout develop #switch to develop
○git merge --no-ff features-users #Merge
features
○git branch -d features-users #delete features
branches

Workflow > Branching > git standard
détails de l’image

Workflow > Branching > git standard

●Version / RC :
○git checkout -b rc-2.0 develop
○bug fixes correction on rc-2.0 & deploy on
develop
○git checkout develop #switch to develop
○git merge --no-ff rc-2.0 #merge bug fix
○Tous les defects sont corrigés on livre le
RC-2.0
○git checkout master #switch to master
○git merge --no-ff rc-2.0 #merge rc-2.0 on
master
○git tag rc-2.0 #tagguer la version 2.0

Workflow > Branching > git standard
Détails de l’image

Workflow > Branching > git standard
●Hotfix - Bug urgent:
○git branch -b hotfix-1623 master #créer une
branche hotfix-1623 depuis master
○Corriger le bug urgent
○git checkout master #switch to master
○git merge --no-ff hotfix-1623 #merge fix on
master
○git checkout develop #switch to develop
○git merge --no-ff hotfix-1623 #merge fix to
develop
○git branch -d hotfix-1623 #supprimer la
branche de fix

Workflow > Branching > git flow



git flow nous permet de simplifier ce
processus et réduire le nombre de
commandes à exécuter pour déployer
notre travail

Workflow > git-flow > Installation

●Debian /ubuntu
○apt-get install git-flow

●Fedora
○dnf install gitflow

●Depuis le dépot officiel
○wget -q -O - --no-check-certificate
https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/git
flow-installer.sh install stable | bash

Workflow > git-flow> initialisation
●init
○git-flow init

Workflow > git-flow> feature


●feature

○git-flow feature list
○git-flow feature start <nom_feature>
○git-flow feature finish <nom_feature>

Workflow > git-flow> Release


●Release

○git-flow release list
○git-flow release start <nom_release>
○git-flow release finish <nom_release>

Workflow > git-flow> Release


●Hotfix

○git-flow hotfix list
○git-flow hotfix start <nom_release>
○git-flow hotfix finish <nom_release>

Workflow > git-flow> Commande
Détails de l’image