在git提交信息中使用反引号

16

我做过

git commit -m "Changed function name `sum` to `sum_list`"

使用反引号的初衷是,当有人在 GitHub 或类似网站上查看提交消息时,sumsum_list 以等宽字体显示。在其他情况下也可以这样做,例如在 Markdown 中。
然而这并没有很好地起作用。运行 git log 命令后,会显示以下提交消息:
Changed function name to

我在谷歌上搜索时,只找到了关于反引号命令的这个问题,但提问者和回答者都已经熟悉我试图理解的概念。

反引号在提交消息中的作用是什么?是否有一种方法将提交消息的部分标记为等宽字体?


在bash上下文中,命令替换可以使用以下语法之一:<some command> `subcommand` <end of main command> 或 <some command> $(subcommand) <end of main command>。其中,子命令首先被执行,其输出被替换为主命令中的子命令。(反引号语法是旧的语法。) - Romain Valeri
3个回答

26

简述:使用单引号:

$ git commit -m 'Changed function name `sum` to `sum_list`'

使用反引号是一种告诉 shell 执行内容的方法,称为命令替换,考虑以下示例:

$ echo "hello `ls` world"
hello Applications
Desktop
Documents
Downloads
Library
Movies
Music
Pictures
Public world

当使用单引号时,唯一的特殊字符是另一个单引号:

$ echo 'hello `ls` world'
hello `ls` world

关于UI如何显示您的git提交消息,一切都取决于解释,也许反引号在您的UI中会特别呈现,但请考虑最低公共分母是git log


1
非常好,谢谢。这也解释了为什么当我在文本编辑器中输入提交消息时(在git commit之后打开),不会出现相同的问题。另外,为了明确这一点:使用反引号是获得等宽字体的正确方法吗? - NerdOnTour
2
@NerdOnTour 这取决于您在哪里阅读提交,如上所述,使用 git log 查看消息只会呈现原样的文本。在不同的提交消息查看器中阅读它,例如在 GitHub 上,可能会将消息解释为 markdown。 - Andreas Louv
我尝试使用 git commit -m 'Add startup script' -m '...' 这种方法,但是出现了很多错误,比如:error: pathspec 'startup' did not match any file(s) known to giterror: pathspec 'script'' did not match any file(s) known to git :( - ashrasmun

0
如果您在.bashrc.zshrc文件中设置了环境变量GIT_EDITORVISUALEDITOR之一,那么您可以使用以下命令:

$ git commit

你的编辑器将会打开,你可以在里面编写提交信息。

将以下内容添加到你的.bashrc.zshrc文件中。

export GIT_EDITOR='code --wait'

然后在命令行上:

$ git commit

打开VS Code时,需要使用标志--wait告诉VS Code不要分叉,这样git就知道当你关闭编辑器时,你已经完成了提交消息的编写。

其他命令也会尊重您的EDITORVISUAL环境变量:

例如,在命令行上按下^X^E,即control+x后跟control+e。这将使用您指定的编辑器打开当前命令行,现在可以使用您的编辑器进行编辑。


-1
酷的提交信息,人们必须始终使用反引号来转义他们想要突出显示的单词。
例如:
- 不要做 - ✅ 做
git commit -m "chore: remove unused `code`"  
git commit -m "chore: remove unused \`code\`" ✅ 
git commit -m 'chore: remove unused \`code\`'

预览

"任务:删除未使用的 code"
"任务:删除未使用的 `code`" ✅
'任务:删除未使用的 `code`' ✅

最终结果将类似于第一个选项,但在不转义反引号的情况下不应该以那种方式编写。\


另一个问题是CI/CD工具无法运行构建,因为提交消息中的反引号没有转义。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接