我正在尝试创建一个别名,它是git commit -m "commit message"
的缩写。
我尝试做的是在~/.aliases
下面创建一个函数。
gc()
{
git commit -m ""$@""
}
当我使用此"别名"时,这会给我这个错误消息gc install project
error: pathspec 'install' did not match any file(s) known to git.
error: pathspec 'project' did not match any file(s) known to git.
虽然我期待它是git commit -m "install project"
如何让这个别名按照我想要的方式工作?
答案 0 :(得分:2)
由于目标是将gc
的所有参数合并为一个字符串以用作-m
的参数,因此您希望使用$*
,而不是$@
。此外,您不需要指定引号。在git commit -m "install project"
中,引号不是参数的一部分;他们只是指示bash
install project
是一个单词,而不是两个单独的单词,作为参数传递给git
。
gc () {
git commit -m "$*"
}
但是,我鼓励您承担将单,正确引用的参数传递给gc
的责任,这样您就不必担心shell会发生什么对$
,*
等字符进行操作
gc () {
git commit -m "$1"
}
gc "install my *awesome* project"