Как в Терминале настроить пользовательское предупреждение, чтобы при вводе определенной команды, например
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 "@$"
.
Также обратите внимание:
Почти для всех целей функции оболочки предпочтительнее псевдонимов.