Как создать пользовательское предупреждение CLI

Как создать пользовательское предупреждение CLI

Как в Терминале настроить пользовательское предупреждение, чтобы при вводе определенной команды, например

git pull origin master

команда не выполняется, и я получаю предупреждение вроде

Did you mean git rebase origin/master?

Я рассматривал возможность создания скрипта bash или просто использования псевдонима в моем профиле bash, но не уверен, какой метод будет лучшим.

Спасибо.

решение1

Нет никаких крючков для pre-pull, но вы можете найти это полезнымhttps://git-scm.com/docs/githooks#_post_merge

Крючки вообще-то классные, если вы о них не знали.


Что касается псевдонима, вам придется создать его для git, например, создать функцию в .bashrcили .bash_aliasesи проверить, являются ли аргументы pull origin master, если нет, вызвать git, в противном случае вывести предупреждение. Или псевдоним с именем git для пользовательского скрипта — по сути, скрипт-обертка для git.

Короче говоря, поскольку псевдоним не может содержать пробелов, то псевдоним должен быть первым"слово"также известный как команда.

В .bash_aliasesили подобном:

mygit()
{
    if [ "$1" = "pull" ] && \
        [ "$2" = "origin" ] && \
        [ "$3" = "master" ]; then
        printf 'Did you mean git rebase origin/master?\n' >&2
        return 1
    else
        git "$@"
    fi
}

alias git=mygit

Или назовите функцию git, но вызовите git изнутри:

command git "$@"

вместо git "@$".

Также обратите внимание:

Почти для всех целей функции оболочки предпочтительнее псевдонимов.

Связанный контент