通过命令行在git提交消息中使用撇号(单引号)?

nut*_*tty 54 git bash escaping

试图采取这种进一步的一步,这怎么可能工作在一个标准的bash shell:

git commit -m 'cracked enigma's code'
Run Code Online (Sandbox Code Playgroud)

这可以简单地用反斜杠转义完成,如下所示:

git commit -m 'cracked enigma\'s code'
Run Code Online (Sandbox Code Playgroud)

此外,如何使用双引号?还通过反斜杠逃避?那会是最好的方式吗?有没有好的替代方法?

git commit -m 'cracked the "real" enigma's code'
Run Code Online (Sandbox Code Playgroud)

cho*_*oba 83

使用双引号:

git commit -m "cracked enigma's code"
Run Code Online (Sandbox Code Playgroud)

或者,如果您的消息包含其他特殊字符,请仅对单引号使用双引号或反斜杠:

git commit -m 'cracked $enigma'"'"'s code'
git commit -m 'cracked $enigma'\''s code'
Run Code Online (Sandbox Code Playgroud)

  • 基本上是因为在双引号内部,变量被扩展; 和`$ enigma`将是一个变量引用.因此,如果您希望邮件包含实际的美元符号,则不能使用双引号. (11认同)
  • 什么是'$`-sign在那里做什么?是不是要定义一个变量?(对不起,如果这是太基础......) (3认同)
  • 它是为了说明为什么简单的双引号不起作用.您可以尝试使用`echo`而不是`git commit -m` (2认同)
  • 当尝试使用单引号注释进行 git commit 时,会收到“错误:pathspec '_____' 与 git 已知的任何文件不匹配”。 (2认同)

Pig*_*ras 15

'如果您的提交是双引号,则无需转义该字符.

git commit -m "cracked enigma's code"
Run Code Online (Sandbox Code Playgroud)

编辑:无论如何,当你在提交消息中添加一些特殊字符时,我更喜欢在编辑器中编辑(如nano或vim),无需-m选择即可提交.

git commit
Run Code Online (Sandbox Code Playgroud)

然后把消息退出并退出.它更加舒适,而不是考虑如何逃避所有这些引号和双引号.