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 pushcur
uitvoer, 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 grf
gebruiken.