ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: @simont предоставляет реальное решение в виде ссылки на этот вопрос . Пожалуйста, игнорируйте все, что ниже правила горизонтали, которое я оставляю для записи.
Просто удалите псевдоним и установите его сразу после.
unalias grs
grs() {
if [ $# -eq 0 ]
then
git restore --staged .
else
git restore --staged "$@"
fi
}
РЕДАКТИРОВАТЬ: Это решение НЕ обрабатывает параметры правильно! Хотя это решение достаточно для того, чтобы разблокировать меня, сейчас вопрос в том, чтобы найти решение, которое может заменить псевдоним в OhMy Zsh, а также принять и обработать параметры.
Нашел решение от здесь при подробном описании моего вопроса.
Я просто преобразовал все свои многострочные функции в однострочные псевдонимы (пример):
alias grs="if [ $# -eq 0 ];then;git restore --staged .;else;git restore --staged \"$@\";fi;"
Это один из более ужасные вещи, которые я видел после перехода на zsh
(что обычно выглядит лучше), но я думаю, что оно того стоит. Если у кого-нибудь есть более элегантное решение, я буду рад его услышать.