【问题标题】:Use of apostrophe (single-quote) in a Git commit message via command line [duplicate]通过命令行在 Git 提交消息中使用撇号(单引号)[重复]
【发布时间】:2013-04-08 15:05:14
【问题描述】:

我正试图让this 更进一步。这如何在标准 Bash shell 中工作?

git commit -m 'cracked enigma's code'

可以像下面这样简单地通过反斜杠转义来完成吗?

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

此外,如何使用双引号?还通过反斜杠转义?那会是最好的方法吗?有什么好的替代方法吗?

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

【问题讨论】:

标签: git bash escaping


【解决方案1】:

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

git commit -m "cracked enigma's code"

编辑:无论如何,当您在提交消息中添加一些特殊字符时,我更喜欢在编辑器(如 nano 或 vim)中进行编辑,不使用 -m 选项进行提交。

git commit

然后输入消息并退出。它更舒适,而不是考虑如何转义所有这些引号和双引号。

【讨论】:

  • 这不适用于 OSX 上的git commit -m "pattern match wasn't exhaustive, scalac!",git 2.15.1。如果我省略感叹号,则可以使用。奇怪的东西。
【解决方案2】:

使用双引号:

git commit -m "cracked enigma's code"

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

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

【讨论】:

  • $-sign 在那里做什么?这不是定义变量吗? (对不起,如果这太 bash 基础......)
  • 它展示了为什么简单的双引号不起作用。您可以尝试使用echo 而不是git commit -m
  • 基本上是因为在双引号里面,变量是展开的;而$enigma 将是一个变量引用。因此,如果您希望您的消息包含实际的美元符号,则不能使用双引号。
  • 当尝试使用单引号 cmets 进行 git 提交时,会收到“错误:pathspec '_____' 与 git 已知的任何文件都不匹配。”
  • 好答案。串联('"'"')确实是要走的路。我用它所有的时间。感觉很奇怪,但效果很好。
猜你喜欢
  • 2011-07-05
  • 1970-01-01
  • 2023-03-15
  • 2012-01-18
  • 1970-01-01
  • 2012-01-14
  • 1970-01-01
  • 2019-07-07
  • 2014-11-22
相关资源
最近更新 更多