git commit に -v をデフォルトとして設定する方法はありますか?

git commit に -v をデフォルトとして設定する方法はありますか?

私は持っている

git () { [ $1 = commit ] && command git commit -v "${@:2}" || command git "$@"; }

git commitデフォルトとしてが設定されます-v。それ以外の場合は、パラメータを渡してgitコマンドを実行します。

でも、もっと短くできるようなものでしょうか?

ご参考までに、ファイルを縮小中です.bashrc。今のところ 28 行 (まだほとんど読める) まで縮小しました。

答え1

部分を繰り返さないための方法は次のとおりですcommand git

git () {
    if [ "$1" = commit ]; then set commit -v "${@:2}"; fi
    command git "$@"
}

二重引用符なしでは使用しないでください$1。二重引用符を省略する必要がある理由がわかっている場合を除き、変数の置換を常に二重引用符で囲んでください。

&&およびをショートカットとして使用しないでください||。見た目はきれいですし、文字数も節約できるかもしれませんが、文字数を節約しても意味がありません。読みやすさは重要であり、ifコードの意図をより明確に示します。

代わりに、git 構成でエイリアスを定義することもできます (ただし、この方法では既存のコマンドをシャドウすることはできないため、別の名前を使用する必要があります)。たとえば、次のようになります~/.gitconfig

[alias]
co = commit -v

関連情報