2014-02-27 4 views
6

Lassen Sie sagen, ich habe einen Alias ​​wie dies in meinem .gitconfig vorgelegt:In Git ist es möglich, einen Alias ​​von einem anderen Alias ​​

alias.showlog = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' 

und jetzt habe ich ein ähnliches alias wie dies wollen:

alias.sl = showlog --abbrev-commit 

Wenn ich den Befehl git sl versuche, sagt er, dass er den Befehl showlog nicht kennt.

Ich weiß, es ist immer noch möglich, den gleichen Befehl wie der andere Alias ​​zu kopieren, aber ich möchte nur wissen, ob es eine Möglichkeit gibt, einen anderen Alias ​​in einem Alias ​​zu verweisen?

+0

ich nicht denken. Hast du es versucht? – Jepessen

+0

Ich habe versucht, die beiden erwähnten Zeilen in meine '.gitconfig' zu setzen; nachdem es vielleicht eine spezielle Notation dafür gibt, aber nichts gefunden hat –

+0

Ich habe keine git in diesem Computer. Wenn "alias.sl = alias.showlog --abbrev-commit" nicht funktioniert, kann ich keine anderen Lösungen finden. – Jepessen

Antwort

12

nicht auf diese Weise, aber Sie können ein Alias ​​machen einen Befehl durch die Schale laufen, damit eine weitere Instanz von git ausgeführt, die den zweiten Alias ​​aufgelöst:

alias.sl = !git showlog --abbrev-commit 
+0

nicht perfekt, aber es macht den Trick. Danke –

+1

Works, aber zurück: 'Fehler: git showlog --abbrev-commit starb an Signal 13' beim Verlassen der Log-Ansicht. Um dies zu verhindern, fügen Sie am Ende des Alias, der den Shell-Befehl ausführt, einen 'exit'-Befehl wie folgt ein: ' sl =! Git showlog --abbrev-commit &&exit ' – Brice

+0

@briceshatzer: Interessant, Signal 13 ist SIGPIPE . Shells beschweren sich generell nicht über SIGPIPE, weil '... | less 'bewirkt oft, dass der '...' Teil mit SIGPIPE beendet wird. Ich erinnere mich, dass ich in GIT einige SIGPIPE-Handling-Änderungen gesehen habe, aber das Hinzufügen eines zusätzlichen Shell-Kommandos wie diesem wird die Shell dazu bringen, das SIGPIPE zu essen und sollte so ziemlich überall funktionieren. – torek