Consultez les documentations en anglais pour plus de détails sur l'utilisation de ces outils
Aide au cycle d'un projet
Instructions d'installation Mac, Linux, Windows
- Télécharger les deux packages Binaries et Dependencies (util-linux-ng for Windows) et en extraire les fichiers suivant
- Binaries: getopt.exe
- Dependencies: libintl3.dll, libiconv2.dll
- Déterminer le dossier utilisé par git dans le terminal :
which git
C:\Program Files\Git\bin
C:\Users\USER_NAME\AppData\Local\GitHub\PortableGit_...\bin
- ...
- Placer les 3 fichiers extraits dans le dossier
C:\<git_directory>\bin
- Se placer dans un dossier quelconque et récupérer les sources git-flow
git clone --recursive git://github.com/nvie/gitflow.git
- Lancer l’interpréteur de commandes Windows avec les droits administrateur
- Se placer dans le dossier choisit précédemment
contrib\msysgit-install.cmd "C:\<git_directory>"
- Vérifier l’installation
git flow help
Déploiement
- Nécessite l'installation de Ruby sous Windows
- Exécutez
gem install git-deploy
dans une nouvelle fenêtre
Renseignez vos informations pour identifier vos contributions
git config user.email "votre@addresse.com"
git config user.name "Prénom Nom"
Les accès SSH au serveur pré-prod et prod sont requis : votre clé publique doit être ajoutée dans le fichier .ssh/authorized_keys
de l'utilisateur correspondant au vhost sur chaque machine distante.
- Créer et initialiser un dépôt sur Gitlab
- Se connecter en ssh aux serveurs (pré-prod / prod)
- Ajouter les utilisateurs via l'interface Gitlab
- Récupérer les sources
git clone git@46.18.195.231:root/<project>.git
cd <project>
- Initialisation de git-flow (création des branches locales master et develop)
git flow init -d
- Configuration des scripts de déploiement des serveurs distants
Exemple d'adresse à renseigner pour un serveur de pré-production : "<####_uservhost>@46.18.195.231:/www"
git remote add development "<user_vhost>@<preprod>:/www"
git deploy setup -r "development"
Assurez vous que le même projet GitLab soit configuré sur chaque serveur
git remote add production "<user_vhost>@<prod>:/www"
git deploy setup -r "production"
- Initialisation de git-deploy (création d'un dossier
deploy
contenant les scripts de déploiement)
git deploy init
- Note pour récupérer la branche de développement distante
git checkout --track origin/develop
Une fois git-flow installé et le projet configuré, la commande git branch -a
permet de lister les branches locales et distantes, tandis que git remote -v
affiche les adresses des dépôts distants.
La remote origin regroupe toutes les branches et la liste des tags gérés par git-flow. Les changements peuvent être déployés sur les serveurs en se plaçant sur la branche develop en pré-production (remote development) ou sur la branche master en production (remote production) comme des dépôts distants.
git checkout <branch>
git pull <remote> <branch>
git push <remote> <branch>
Cheatsheet git-flow by Daniel Kummer
git flow <command> <action> [-F] [-p] <name>
-F fetch from $ORIGIN before performing ...
-p push to $ORIGIN after performing finish
Développement d'une fonctionnalité : feature
Les évolutions sont gérées par git-flow à l'aide des branches feature.
Pour commencer le développement d'une nouvelle fonctionnalité depuis la branche develop, saisir la commande suivante
git flow feature start <name>
Vous êtes automatiquement positionné sur la nouvelle branche locale feature/<name>
pour y effectuer les modifications
git add <files>
git commit -m "<message>"
Les outils installés permettent de partager les développements plus conséquents sur le dépôt distant avec d'autres contributeurs
git flow feature publish <name>
git flow feature pull origin feature/<name>
Une fois les changements satisfaisants, la fonctionnalité peut être fusionnée dans la branche develop
git checkout develop
git pull origin develop
git checkout feature/<name>
git flow feature finish -F <name>
Déploiement pré-prod
git push development develop
Correction en production : hotfix
Un bug présent en production peut être rapidement corrigé en créant une branche de type hotfix basée sur master. Les correctifs sont liés à des tags gérés par git-flow, par exemple une correction de la release/1.0
entrainerait la création d'une branche hotfix/1.0.1
git flow hotfix start <X.Y.Z>
...
git add <files>
git commit -m "<message>"
git flow hotfix finish <X.Y.Z>
Déploiement pré-prod
git push development develop
Déploiement prod
git push production master
Déploiement d'une nouvelle version : release
La mise à disposition de nouvelles fonctionnalités sur une branche de type release entraine des tests et recettes. Une branche release/X.Y
est créée à partir de develop et est fusionnée à master une fois les modifications effectuées.
git flow release start <X.Y>
...
git flow release finish -F -p <X.Y>
Déploiement pré-prod
git push development develop
Déploiement prod
git push production master