カスタム CLI 警告を作成する方法

カスタム CLI 警告を作成する方法

ターミナルで、次のような特定のコマンドを入力したときにカスタム警告を設定するにはどうすればいいでしょうか?

git pull origin master

コマンドは実行されず、次のような警告が表示されます。

Did you mean git rebase origin/master?

bash スクリプトを作成するか、bash プロファイルでエイリアスを使用するかを検討しましたが、最適な方法がわかりません。

ありがとう。

答え1

フックはありませんpre-pullが、これは役に立つかもしれませんgithooks は、git の post_merge をマージするために使用されます。

フックは、もし知らなかったら、一般的には便利です。


エイリアスについては、またはgitで関数を作成し、引数が pull origin master であるかどうかを確認し、そうでない場合は git を呼び出し、そうでない場合は警告を出力します。または、カスタム スクリプトに git という名前のエイリアスを作成します (実質的には git のラッパー スクリプト)。.bashrc.bash_aliases

つまり、エイリアスにはスペースを含めることができないため、エイリアスは最初の"言葉"別名コマンド。

または.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 "@$"

また、次の点にも注意してください:

ほとんどすべての目的において、シェル関数はエイリアスよりも優先されます。

関連情報