Use of apostrophe (single-quote) in a git commit m

2019-03-09 15:55发布

问题:

This question already has an answer here:

  • How to escape single quotes within single quoted strings? 19 answers

Trying to take this one step further, how could this work in a standard bash shell:

git commit -m 'cracked enigma's code'

Could this simply be done with backslash-escaping like so:

git commit -m 'cracked enigma\'s code'

Further, how could double-quotes be used? Also by backslash-escaping? Would that be the best way? Are there any good alternative ways?

git commit -m 'cracked the "real" enigma's code'

回答1:

Use double quotes:

git commit -m "cracked enigma's code"

Or, if your message contains other special characters, use double quotes or backslash only for the single quote:

git commit -m 'cracked $enigma'"'"'s code'
git commit -m 'cracked $enigma'\''s code'


回答2:

There is no need to escape the ' character if your commit is double quoted.

git commit -m "cracked enigma's code"

EDIT: Anyway, when you have some special characters to add in the commit message I prefer to edit in a editor (like nano or vim), commiting without the -m option.

git commit

And then put the message and exit. It's more confortable instead of thinking how you have to escape all those quotes and double quotes.