如何从命令行向Git提交消息输入感叹号?
可以使用反斜杠转义感叹号,但反斜杠也会在提交消息中结束。
我想要这样的事情:
git commit -am "Nailed it!"
答案 0 :(得分:209)
使用单引号而不是双引号
git commit -am 'Nailed it!'
或者,如果您因任何原因需要使用双引号但仍需要文字!
,请通过set +H
答案 1 :(得分:38)
另一种解决方法是在!之后添加空间,如:
git commit -am "Nailed it! "
请注意!与最后“之间的空间。
(该空间不会包含在提交消息中 - Git会自动从提交消息中修剪尾随空格。)
答案 2 :(得分:3)
无需记住要使用的引号或转义,而是
Ctr
X
E
»将打开您的“外部编辑器”。......命令将被执行& 任何特殊字符都会在Git提交消息中正确显示!
(NB许多其他用途:输入复杂命令,在提交消息中添加换行符等)
答案 3 :(得分:1)
您也可以输入:
git commit -am "Nailed it
!
"
所以只需按Enter键并将感叹号放在新行上,然后关闭提交消息。发现有一天偶然发现了一个。
答案 4 :(得分:1)
如果您需要使用双引号并且!
是消息中的最后一个字符just keep the !
outside of the quotes,因为我们仅使用引号来使空格包含在消息中。
git commit -m "Reverting last commit because I don't like it"!
如果需要在中间字符串中包含!
,则可以使用单引号,但是如果需要使用文字单引号,则需要先关闭引号,然后将'
放在外面通过转义来删除字符串。因此,假设您的消息是I don't like it! Reverting again!
,该消息可以由'I don'
+ \'
+ 't like it! Reverting again!'
git commit -m 'I don'\''t like it! Reverting again!'
任何比这更复杂的事情,您最好使用git commit
并让git调用默认的文本编辑器:)
答案 5 :(得分:-3)
嗯。使用斜杠转义它并不会显示在提交消息中。
git commit -m "Nailed it\!"