开发者

Use of an exclamation mark in a Git commit message via the command line

How do I enter an exclamation point into a Git commit message from the command line?

It is possible to escape the exclamation point with a backslash, but then the backslash ends up in t开发者_StackOverflowhe commit message as well.

I want something like this:

git commit -am "Nailed it!"


Use single quotes instead of double quotes

git commit -am 'Nailed it!'

Alternatively, if you need to use double quotes for whatever reason but still want a literal ! then turn off history expansion at the top of your script via set +H


Another way to solve that is to add a space after ! like:

git commit -am "Nailed it! "

Note the space between ! and the last ".

(The space won't be included in the commit message - Git trims trailing whitespace from commit messages automatically.)


If you need to use double quotes and the ! is the last character in the message, just keep the ! outside of the quotes, since we're only using quotes so that the spaces get included in the message.

git commit -m "Reverting last commit because I don't like it"!

If you need to include ! mid string, you can use single quotes but if you need to use a literal single quote, you'll need to close your quote, then put the ' outside of the string by escaping it. So, let's say your message is I don't like it! Reverting again!, this can be composed with 'I don' + \' + 't like it! Reverting again!'

git commit -m 'I don'\''t like it! Reverting again!'

Anything more complicated than this, you're probably better off with git commit and letting git invoke your default text editor :)


No need to remember what quotes or escapes to use, instead

  1. Type your command (or part of it)
  2. In your command line, press Ctr X E » will open your "external editor".
  3. Edit your command, and close your editor.

… the command will be executed & any special characters will show up correctly in the Git commit message!

(NB many other uses: typing complex commands, adding line breaks in your commit message etc.)


You can also type:

git commit -am "Nailed it
!
"

So just hit enter and place the exclamation mark on a new line, then close off the commit message. Found that one out by accident one day.


Hmm. Escaping it with a slash doesn't show up in commit message for me.

git commit -m "Nailed it\!"
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜