在终端中,如何设置自定义警告,以便当我键入特定命令(例如
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
or中创建一个函数一样.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 "@$"
。
另请注意:
对于几乎所有用途,shell 函数都优于别名。