AlpineLab blog technique

Un alias git, c'est toujours pratique

Pour ce blog j'utilise Middleman, j'ai donc un repository pour les sources. Mais dès qu'il s'agit de déployer (i.e. compiler puis pusher les fichiers compilés sur un autre repository, que github:pages reconnait comme devant les mettre en ligne), voilà la séquence de commandes que je dois executer :

$ git push
$ middleman build --clean
$ middleman deploy --clean

Épuisant.

J'ai donc besoin d'un moyen d'éxécuter toutes ces commandes d'un coup. Comme un alias ou un scriptshell seraient trop faciles, j'ai regardé du côté des alias git.

En gros, je veux pouvoir tout simplement entrer :

$ git dpush # 'dpush' commme 'deploy & push'

Il suffit donc de déclarer un alias git comme ça :

$ git config alias.dpush '!git push origin master && middleman build --clean && middleman deploy --clean'

Cette commande va ajouter les lignes suivantes au fichier .git/config :

[alias]
  dpush = !git push origin master && middleman build --clean && middleman deploy --clean

Voilà, plus qu'à executer git dpush pour pusher son code, compiler, puis déployer un nouvel article.

Notes

  1. Le point d'exclamation (!) en première position de l'alias sert à indiquer que c'est une commande à part entière. Sans ce point d'exclamation, les alias portent par défaut sur d'autres commandes git. Genre, pour pouvoir écrire git st au lieu de git status, comme piouPiouM : [alias] st = status
  2. Comme on le déclare ici, l'alias est local : il ne s'applique qu'au repository courant (d'ailleurs il est stocké dans .git/config qui est la config du repository courant uniquement). Pour créer un alias qui fonctionne partout, il faut utiliser le switch --global : l'alias sera alors déclaré non pas dans .git/config mais dans ~/.gitconfig et sera donc accessible dans tous vos repository git.

Sources

Tout est parti d’une réponse sur StackOverflow

Publié par Michael Baudino michael.baudino@alpine-lab.com
Alpine Lab