#!⌨

Git flow

Afin de gérer facilement ses branches git (suivant ce schéma), il exist 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.