Pipes dans un git Alias?

Je travaille sur des twigs fonctionnelles qui ont de gros noms, alors je finis souvent par nommer mon nom de twig actuel lorsque je dois accéder à la twig des fonctionnalités depuis ma twig d’entités locale, comme ceci:

git branch | grep '*' | sed 's/* //' | xargs git push origin 

Cela fonctionne bien. Je veux en faire un alias, alors je l’ai fait dans ~ / .gitconfig:

 [alias] pushcur = branch | grep '*' | sed 's/* //' | xargs git push origin 

Maintenant, quand je lance git pushcur , j’obtiens l’erreur suivante:

 usage: git branch [options] [-r | -a] [--merged | --no-merged] 

Cela m’amène à croire que l’alias n’parsing pas correctement les tuyaux. Y a-t-il autre chose que je devrais faire pour atteindre l’alias souhaité?

Je ne pense pas que vous pouvez, mais vous pouvez le préfixer avec un ! traiter la commande comme une nouvelle commande shell

 [alias] pushcur = ! git branch | grep '*' … 

Je git- généralement de petits scripts git- et les place dans un répertoire qui se trouve sur mon chemin ( ~/.local/bin ). Découvrez git-extras pour un tas de bons exemples.

Une solution simple consiste à l’append en tant qu’alias de shell .

Voici un exemple:
alias grf="git rebase -i $(git merge-base --fork-point master)"
(rebase sur la validation fork de la twig et du master en cours interactivement)

Pour bash, ajoutez-le à ~ / .bashrc, alors vous pouvez simplement utiliser grf .