我有这样的功能:
function gcm {
git commit -m "$*"
}
它允许我做gcm my commit message
进行提交。当我必须做gcm my commit message #issue-number
之类的事情时,就会出现问题。它考虑了#作为评论之后的所有内容。
我完全理解,但有没有办法在提交消息中包含锐利?
我知道我可以在提交消息周围添加引号,但我也知道我会忘记很多次。
答案 0 :(得分:4)
这不是git
问题;您必须以某种方式引用#
,以防止shell在#
运行git
之前将gcm my commit message \#issue-number
作为评论放弃:
gcm
出于这个原因,你应该简单地引用预期的消息以防止任何shell解释,并写gcm () {
git commit -m "$1"
}
gcm "my commit message #issue-numer"
来接受一个参数,即预期的消息。
git
您可能在提交消息中包含许多其他要求转义的字符,因此您也可以引用所有字符并将消息作为单个参数传递。在整个预期消息中,一对引号比多个反斜杠(或引号对)更容易记住。
您正在bash
投放bash
:了解如何正确使用interactive_comments
。
您可以停用$ echo foo #bar
foo
$ shopt -u interactive_comments
$ echo foo #bar
foo #bar
选项:
#
但此仅解决了需要转义{{1}}的问题;它不会对分号,感叹号,路径名生成或其他需要转义的字符做任何处理。