Présentation de l'outil git-flow
Afin de gérer facilement ses branches git (suivant ce schéma), il existe un outil en ligne de commande très pratique : git-flow.
Installation
Pour l'installation vous pouvez aller voir ici, l'installation pour toutes les distribs y est décrite. Un exemple sur Archlinux, c'est ce qu'on utilise chez Hashbang (git-flow est présent dans les paquets AUR) :
yaourt -S gitflow-git
Une dernière petite étape pour avoir la complétion pour son utilisateur, il suffit d'enregistrer ce fichier (par exemple dans votre HOME) et de le charger dans ~/.bashrc :
wget https://github.com/bobthecow/git-flow-completion/blob/master/git-flow-completion.bash -O ~/.git-flow-completion.sh source ~/.git-flow-completion.sh echo "source ~/.git-flow-completion.sh" >> ~/.bashrc
Et voilà ! Le tour est joué.
Utilisation
Git flow fournit plusieurs commandes pour nous faciliter la vie :
git flow init
La première à utiliser est git flow init afin d'initialiser son projet git. Cette commande est à utiliser dans un nouveau ou un ancien projet git.
Plusieurs questions vous seront posées, vous pouvez laisser les configurations par défaut ou les personnaliser comme vous le souhaitez.
Un git flow init dans un dépôt git va créer les branches master et develop si elles n'existent pas.
git flow feature
Pour commencer une nouvelle branche pour une nouvelle fonctionnalité, utilisez git flow feature start <feature_name>.
Cette commande permet de créer une nouvelle branche feature/<feature_name> partant de develop et de se placer sur cette nouvelle branche.
Lorsque cette feature est terminée, un git flow feature finish <feature_name> va merger la branche feature/<feature_name> dans develop, supprimer la branche feature/<feature_name> et vous placer sur develop.
git flow hotfix
Les hotfix sont également possible : git flow hotfix start <fix_name> permet de créer une nouvelle branche depuis master puis git flow hotfix finish <fix_name> permet, dans l'ordre, de :
- faire un fetch depuis origin
- merger le hotfix dans master
- tagger le hotfix
- merger master dans develop
- et enfin supprimer la branche hotfix
Une dernière petite chose qui peut être utile, git flow -g permet d'avoir la liste des commandes.
Il faut bien garder en tête que git-flow ne fait rien de plus qu'automatiser certaine action. Tout ce que git-flow fait est possible avec git.