通过命令行在Git提交消息中使用感叹号


Answers:


226

使用单引号而不是双引号

git commit -am 'Nailed it!'

或者,如果出于任何原因需要使用双引号但仍然需要文字,!则可以通过以下方式在脚本顶部关闭历史记录扩展set +H


48
或只混合您的引号:git commit -am "$FOO: Nailed it"'!'
卡斯卡贝尔2011年

4
在OS X中,这不适用于我,因此我只使用了git commit(no -m)打开了文本编辑器来显示消息。
凯文C.13年

在OSX中git commit -m "This is the best code ever"!,如@Ryan H.答案中所述使用。
mljrg

42

解决该问题的另一种方法是在之后添加一个空格喜欢:

git commit -am "Nailed it! "

注意之间的空格最后

(该空格不会包含在提交消息中-Git自动修剪提交消息中的尾随空白。)


3
这对我来说似乎是最简单的解决方案,并允许使用带变量插值的双引号:git commit -m "$(sillyname) $(buzzphrase). $(superb)! ":)
Alex Hall

4

无需记住要使用什么引号或转义符

  1. 输入您的命令(或命令的一部分)
  2. 在命令行中,按 Ctr X E»将打开“外部编辑器”。
  3. 编辑命令,然后关闭编辑器。

…该命令将被执行,并且所有特殊字符都将正确显示在Git提交消息中!

(注意,还有许多其他用途:键入复杂的命令,在提交消息中添加换行符等)


4

如果您需要使用双引号,并且!是消息中的最后一个字符,则只需保留!引号的外面,因为我们仅使用引号,以便空格包含在消息中。

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调用默认的文本编辑器:)


1

您也可以输入:

git commit -am "Nailed it
!
"

因此,只需按Enter键并将感叹号放在新行上,然后关闭提交消息即可。发现有一天是偶然地出来的。


6
这会将感叹号之前的文字换行符插入到提交消息中,这很丑陋。-1。
Mark Amery

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.