hub alias
scheint --noop
zu berücksichtigen, also versteckt es git-alias
vor https://github.com/visionmedia/git-extras.
Da es sich um einen Hub-spezifischen Befehl handelt und nur zur Einrichtungszeit nützlich ist, schlage ich vor, entweder:
--noop
hub [--alias|--shell-alias] [SHELL]
$0
explizit hub
Ich habe eine Weile gebraucht, um zu verstehen, was du sagst. Grundsätzlich überschattet hub alias
die anderen git-alias
Befehle, die auf dem System vorhanden sein können (in diesem Fall wird einer von git-extras bereitgestellt), oder?
Ich befürworte Ihren Vorschlag 3. Dieses Verhalten könnte jedoch für einige überraschend sein, da in jedem anderen Fall der Aufruf von hub <something>
mit git <something>
identisch sein sollte (wenn hub
wird als git
). Ich muss darüber nachdenken.
Danke für die Warnung!
Tut mir leid, wenn ich nicht klar war; du hast mich richtig verstanden.
Könnte so etwas wie hub alias-command
genauso gut funktionieren und etwas klarer sein?
Oder etwas ähnliches...
Zunächst einmal leitet --noop
nicht alle Befehle an git
. Es zeigt nur, was von hub
, führt es aber nicht aus.
Mir gefällt die Idee, dass hub alias
nur funktioniert, wenn der Befehl als hub
und nicht als git
aufgerufen wurde. Ich weiß jedoch nicht, wie man das technisch macht; der Wert von $0
ist für mich hub
, unabhängig davon, ob ich es über einen git
Alias aufgerufen habe oder nicht.
Die nächste Option besteht darin, es zu einem benutzerdefinierten Flag wie hub --alias
. Dies stört jedoch die Abwärtskompatibilität mit Leuten, die bereits eval "$(hub alias -s)"
eingebettet haben, ist eine Shell.
@cdlm @mislav Macht Hub git- https://github.com/tj/git-extras/blob/master/Commands.md erwähnt werden?
Sie können alle git-extras-Befehle außer git alias
und git fork
aus diesem Repository verwenden, da hub alias
und hub fork
Vorrang haben.
Sie können stattdessen git-alias
und git-fork
verwenden oder den Alias git
mit \
(Backslash) umgehen: \git alias
. Ich bin kein Go-Experte, aber ich habe herumgebastelt und egal wie ich die ausführbare Go-Datei os.Args[0]
ausführe, gibt immer den wahren Namen der ausführbaren Datei an, nämlich hub
, als @ Mislav sagte.
Im Fall von hub alias
können Sie vielleicht die Tatsache nutzen , dass -s
übergibt läuft hub alias
sonst eine deprecation Mitteilung drucken oder nach vorn über auf die git
Befehl.
Für jeden Befehl, wenn Sie hub
ganz von Ihrer Shell überspringen möchten, führen Sie einfach command git ...
. ZB command git alias
.
Ja, und das hat den gleichen Effekt wie der Backslash \
, _zB_ \git
Hilfreichster Kommentar
Für jeden Befehl, wenn Sie
hub
ganz von Ihrer Shell überspringen möchten, führen Sie einfachcommand git ...
. ZBcommand git alias
.