Ilekroć próbuję wpisać git stash list
moje palce idą nieuczciwie i wpisz git stash ls
. Naprawdę chciałbym alias ls do listy, ale tylko wewnątrz podkomendy ukrywania. Czy jest to możliwe z aliasami git?Jak mogę zdefiniować alias dla podkomendy Git (np. Dla `list` na liście` git "lista ")?
Odpowiedz
Git nie oferuje żadnego mechanizmu do aliasingu podkomendy; zobacz stronę podręcznika użytkownika git-config
.
Jednak istnieje trik dla osiągnięcia tego samego efektu: użyj małej owijkę wokół git
binarny definiując polecenie powłoki zwany również git
że robi to, co chcesz:
git() {
if [ "$1" = "stash" -a "$2" = "ls" ]
then
command git stash list
else
command git [email protected]
fi;
}
Nie dość, ale nie zadanie (testowane w jednym z moich repozytoriów):
# starting from a dirty working state...
$ git stash save
Saved working directory and index state WIP on master: 7c6655d add missing word in documentation
HEAD is now at 7c6655d add missing word in documentation
$ git stash ls
[email protected]{0}: WIP on master: 7c6655d add missing word in documentation
Należy zauważyć, że takie podejście nie jest bardzo solidne. W szczególności git stash list
będzie nie być uruchamiany, jeśli istnieją inne argumenty linii poleceń między git
i stash ls
, jak w
git -C ~/Desktop stash ls
Podejście powinno być wystarczające dla przypadku użycia, choć.
Aby uniknąć konieczności ponownego wpisywania definicji tej funkcji git
przy każdym uruchomieniu powłoki, należy umieścić ją w jednym z plików skonfigurowanych do skonfigurowania powłoki.