2

我的问题

在编写提交消息时,我尝试使用“`”标记用代码格式化消息。
这是我的提交信息:

git commit -am"style(Nav.tsx): adheres to eslint rules

line 34 and 128: add newline padding
line 69 (nice): move function body to new line
line 89: navbarClassNames used to shorten line length later on
line 98: navbarClassNames now holds the class names of the navbar
line 98-110: shortened line length with new lines
line 96: nav is now camelCase
line 92 and 122: add `@returns` in docstrings"

执行命令后,我得到了这个

bash: @returns: command not found
[auth 57ee20c] style(Nav.tsx): adheres to eslint rules
1 file changed, 27 insertions(+), 6 deletions(-)

并且提交消息会中断。在 GitHub 上,有问题的行看起来像这样

line 92 and 122: add  in docstrings

我试过的

我尝试过使用三个“`”的东西,我也尝试过使用<code></code>
当我使用“```”时,我得到相同的消息和问题,当我使用时<code></code>command not found错误消失了,但提交消息保留了<code></code>块而不是转换它。我也尝试过这样的字符串转义

line 92 and 122: add \`@returns\` in docstrings

和代码块一样,提交消息保留“`”而不是转换它。

结束信息

我知道这不是很重要,但我真的很想知道是否有办法。
我在单行提交方面取得了成功,所以也许这在提交正文中不起作用。 提交带有工作反引号的消息

但如果我使用反斜杠方法,它不适用于多行 在没有工作反引号的情况下提交消息

4

2 回答 2

6

在 Bash 中,双引号字符串受命令替换*. 这就是反引号在第一种情况下所做的事情,也是您看到bash: @returns: command not found. 要修复它,您可以像以前一样逃避它们:

git commit -am "style(Nav.tsx): adheres to eslint rules

...
line 92 and 122: add \`@returns\` in docstrings"

或使用单引号:

git commit -am 'style(Nav.tsx): adheres to eslint rules

...
line 92 and 122: add `@returns` in docstrings'

但是,将保留反引号。提交消息是纯文本。该屏幕截图中的精美格式是由 GitHub 完成的,而不是 git。我相信 GitHub在提交消息中支持Markdown 。(Stack Exchange 也使用 Markdown。)


* 顺便说一句,如果您确实想在 Bash 中进行命令替换,您应该使用新语法,$(command)而不是`command`.

于 2020-05-14T21:14:02.840 回答
3

大概发生了什么

您的 shell(可能是 bash 或某些 bourne shell 变体)具有执行命令并使用结果构建新命令行的功能。访问该功能的一种方法是通过反引号。你可以例如做

echo "Today is `date`."

date在一个漂亮的小句子中显示输出。

你可以做什么来代替`你的提交信息

  • '在消息参数周围使用单引号 ( )。Bash 和 sh 不在单引号字符串中执行命令替换。

    或者

  • 在编辑器中编写提交消息,而不是在命令行中传递它。通过省略-m选项及其参数来做到这一点。然后 Git 将打开环境变量指定的编辑器$EDITOR,让您编辑提交消息。

提交消息是纯文本

对于 Git 及其命令行工具(例如git log),提交消息是纯文本,没有任何标记语言。像 GitHub 和第三方工具这样的托管平台可能会在某些情况下将纯文本解释为某种标记语言,但不一定在所有情况下都如此。无论 GitHub 在哪里这样做,它通常都会将其解释为 GitHub 风格的 MarkDown。

于 2020-05-14T21:16:27.963 回答