无法添加"!" 我的git提交消息中的符号

Ant*_*t's 16 git bash

可能重复:
如何从命令行输入感叹号到git commit消息?

我是git的新手,我做了这个命令:

git commit -m "First Commit!"
Run Code Online (Sandbox Code Playgroud)

这会抛出这样的错误:

bash: !": event not found
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种错误?就是在Git中,我不应该使用!符号commit吗?

是否有其他符号我不应该使用或应该逃脱任何转义序列?

Pau*_*l R 30

与git无关,更多与bash有关 - 逃避!或使用单引号,即

$ git commit -m "First Commit\!"
Run Code Online (Sandbox Code Playgroud)

或更好:

$ git commit -m 'First Commit!'
Run Code Online (Sandbox Code Playgroud)

  • 在第一种方法中使用反斜杠转义将在实际提交消息中留下难看的文字反斜杠.回答[帖子这是一个骗局](http://stackoverflow.com/questions/5131948/use-of-an-exclamation-mark-in-a-git-commit-message-via-command-line ) 更好. (12认同)

Dom*_*nef 10

这根本不是git相关的,但与bash有关.用!在字符串中将导致bash尝试历史扩展.如果您不想这样,请使用单引号字符串或使用反斜杠转义感叹号.


Una*_*dra 5

不,可以在git命令行和双引号中实现。一个简单的解决方法是在后面放置一个空格!

git commit -m "First Commit! "
Run Code Online (Sandbox Code Playgroud)

解决此问题的另一种方法是使用git guigit commit,然后在打开的编辑器中指定消息。

该限制显然是bash限制,而不是git问题。您可以使用单引号将其避免:

git commit -m 'First Commit!'
Run Code Online (Sandbox Code Playgroud)

  • 这不是*限制*,而是*功能*! (5认同)