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

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

可以用反斜杠转义叹号,但是反斜杠也会出现在提交消息中。

我想要这样的东西:

git commit -am "Nailed it!"
19396 次浏览

使用单引号代替双引号

git commit -am 'Nailed it!'

或者,如果出于某种原因需要使用双引号,但仍然希望使用字面 !,那么通过 set +H关闭脚本顶部的历史扩展

你也可以输入:

git commit -am "Nailed it
!
"

所以只要点击回车,把叹号放在一个新的行,然后关闭提交消息。有一天偶然发现了这个。

解决这个问题的另一种方法是在 后面加一个 空间,比如:

git commit -am "Nailed it! "

注意 和最后一个 "之间的 空间

(空格不会包含在提交消息中—— Git 会自动从提交消息中删除尾随的空格。)

相反,不需要记住要使用什么引号或转义符

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

... 命令将被执行 & 任何特殊字符都将正确显示在 Git 提交消息中!

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

对我来说,用斜杠转义不会出现在提交消息中。

git commit -m "Nailed it\!"

如果需要使用双引号,并且 !是消息中的最后一个字符 只要把 !排除在引号之外,因为我们只使用引号,所以空格包含在消息中。

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