为 git commit 添加别名,这样就不需要引号了

Adding an alias for git commit so that no quotes are needed

在 git 中,当我提交更改时,我使用:

git commit -m "my commit message"

我发现每次输入都非常耗时,尤其是因为我习惯于随着时间的推移进行许多小的提交

我想要一个使这更容易的别名,例如

gm commit message

我不喜欢在我的提交消息之前和之后输入引号,而且“gm”比“git commit -m”快得多

在我的 .zshrc 文件中创建此别名的最佳方法是什么?

zsh中:

setopt interactive_comments
preexec(){ _lc=; }
alias gm='git commit -m "${_lc#gm }" #'

然后:

gm ** you can use ", ) or any other char's in the commit message

请注意,您的其他别名等可能会使用 preexec 功能;您可能需要修改它,而不仅仅是覆盖它。


bashksh93中,没有preexec,但你可以从历史:

alias gm='_lc=$(fc -nl -0); git commit -m "${_lc#*gm }" #' 

此外,bash 和 ksh93 默认识别交互式脚本中的注释。

gm() { git commit -m "$*" }
gm this works
gm but you need to quote special chars\!