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

时间:2011-02-27 07:13:40

标签: git bash

如何从命令行向Git提交消息输入感叹号?

可以使用反斜杠转义感叹号,但反斜杠也会在提交消息中结束。

我想要这样的事情:

git commit -am "Nailed it!"

6 个答案:

答案 0 :(得分:209)

使用单引号而不是双引号

git commit -am 'Nailed it!'

或者,如果您因任何原因需要使用双引号但仍需要文字!,请通过set +H

关闭脚本顶部的历史记录扩展

答案 1 :(得分:38)

另一种解决方法是在之后添加空间,如:

git commit -am "Nailed it! "

请注意与最后之间的空间

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

答案 2 :(得分:3)

无需记住要使用的引号或转义,而是

  1. 输入您的命令(或部分命令)
  2. 在命令行中,按 Ctr X E»将打开您的“外部编辑器”。
  3. 编辑命令,然后关闭编辑器。
  4. ......命令将被执行& 任何特殊字符都会在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\!"