有没有办法让 git commit 将 -v 作为默认值?

Mic*_*ant 0 shell bash git

我有

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

它使git commithave-v作为默认值,否则传递参数并执行任何git命令。

但它似乎可以缩短?

仅供参考,我正在精简我的.bashrc文件。到目前为止,只有 28 行(大部分仍可读)。

Gil*_*il' 5

这是一种不重复然后command git部分的方法:

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

请注意,您不应在$1没有双引号的情况下使用。始终在变量替换周围使用双引号,除非您知道为什么需要将它们排除在外。

不要使用&&||作为快捷方式。挺可爱的,还能省几个字,但是省字没啥意义。可读性很重要,if它以更清晰的方式说明了代码的意图。

您可能希望在 git 配置中定义别名(但您不能以这种方式隐藏现有命令,您需要使用不同的名称),在以下内容中使用以下内容~/.gitconfig

[alias]
co = commit -v
Run Code Online (Sandbox Code Playgroud)