如何创建自定义 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,就像在.bashrcor中创建一个函数一样.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 函数都优于别名。

相关内容