Ich versuche einen Alias mit Parameter für mein einfaches Git Add / Commit / Push zu erstellen.
Ich habe gesehen, dass Function als Alias verwendet werden kann, also versuche ich es, aber ich habe es nicht geschafft.
bevor ich hatte:
alias gitall="git add . ; git commit -m 'update' ; git push"
Aber ich möchte meine Commits ändern können:
function gitall() {
"git add ."
if [$1 != ""]
"git commit -m $1"
else
"git commit -m 'update'"
fi
"git push"
}
(Ich weiß, es ist eine schreckliche Git-Praxis)
csh
tut, aber es hat überhaupt keine Funktionen. (Ich weiß nicht, ob es keine Funktionen gibt, weil Aliase Parameter annehmen können, oder ob Aliase Parameter annehmen, weil es keine Funktionen gibt, oder was.)gitall "my commit message"
? oder würden Sie es nennengitall('my commit message')
gitall "my commit message"
.getall() {
ohne das Vorhergehendefunction
- sicher, es ist in beiden Fällen legal in zsh, aber diese einzige Änderung macht dies mit allen POSIX-kompatiblen Shells kompatibel.git commit -m "${1:-update}"
eine Parametererweiterung mit einem Standardwert verwenden würden, würden Sie dieif
Anweisung überhaupt nicht benötigen .Wenn Sie aus irgendeinem Grund wirklich einen Alias mit einem Parameter verwenden müssen, können Sie ihn hacken, indem Sie eine Funktion in Ihren Alias einbetten und sofort ausführen:
alias example='f() { echo Your arg was $1. };f'
Ich sehe, dass dieser Ansatz häufig in .gitconfig-Aliasen verwendet wird.
quelle
example
.alias example='(){ echo Your arg was $1. ;}'
Ich habe diese Funktion in der .zshrc-Datei verwendet:
function gitall() { git add . if [ "$1" != "" ] then git commit -m "$1" else git commit -m update # default commit message is `update` fi # closing statement of if-else block git push origin HEAD }
Hier
git push origin HEAD
ist verantwortlich, um Ihren aktuellen Zweig auf Remote zu schieben.Führen Sie an der Eingabeaufforderung diesen Befehl aus:
gitall "commit message goes here"
Wenn wir nur
gitall
ohne Festschreibungsnachricht ausgeführt werden, entspricht die Festschreibungsnachrichtupdate
der Funktion.quelle
"git add ."
und die anderen Befehle dazwischen"
sind nur Zeichenfolgen für Bash, entfernen Sie das"
s.Vielleicht möchten Sie
[ -n "$1" ]
stattdessen in Ihrem if-Körper verwenden.quelle
Ich habe die akzeptierte Antwort (Kevins) ausprobiert, aber den folgenden Fehler erhalten
defining function based on alias `gitall' parse error near `()'
Daher wurde die Syntax basierend auf dem Git-Problem dahingehend geändert und es funktionierte.
function gitall { git add . if [ "$1" != "" ] then git commit -m "$1" else git commit -m update fi git push }
quelle