Pijpen in een Git-alias?

Ik werk aan feature-branch die vervelende grote namen hebben, dus ik grijp vaak mijn huidige branch-naam wanneer ik naar de feature-branch moet pushen vanuit mijn lokale feature-branch, zoals zo:

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

Dit werkt prima. Ik wil hier een alias van maken, dus ik deed dit in ~/.gitconfig:

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

Als ik nu git pushcuruitvoer, krijg ik de volgende foutmelding:

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

Wat me doet geloven dat de alias de pijpen niet goed ontleedt. Moet ik nog iets anders doen om de gewenste alias te krijgen?


Antwoord 1, autoriteit 100%

Ik denk niet dat je dat kunt, maar je kunt het voorafgaan met een !om het commando als een nieuw shell-commando te behandelen

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

Antwoord 2, autoriteit 5%

Ik maak meestal kleine git--scripts en plaats ze in een map die in mijn pad staat (~/.local/bin). Bekijk git-extrasvoor een heleboel goede voorbeelden.


Antwoord 3

Een eenvoudige oplossing is om het toe te voegen als shell alias.

Hier is een voorbeeld:

alias grf="git rebase -i $(git merge-base --fork-point master)"

(rebase interactief op de fork-commit van de huidige branch en master)

Voor bash, voeg het toe aan ~/.bashrc, dan kun je gewoon grfgebruiken.

Other episodes