首页 > 解决方案 > 如何让 VS Code 的 Commit UI 在提交消息中支持 `#`?

问题描述

我需要遵循以#(ex. #1234 ...) 开头的 git commit 消息格式。

不是Start a git commit message with a hashmark (#)的重复,因为我知道commentchar并且我已经将我配置git为使用不同的注释字符:

gino@myrepo$ git config --global --get core.commentchar
;
gino@myrepo$ git config --get core.commentchar
;

如果我从命令行提交,我还确认它可以工作:

gino@myrepo$ git log
Author: ...
Date:   Wed Nov 13 21:59:40 2019 +0900

    # Test `git commit` from terminal
    # These 2 lines should not be treated as comments

问题是当我尝试从VS Code 的 Commit UI 提交时:

vscode 提交

VS Code 的 Git 似乎不支持#不是注释的配置,因为当我检查 时git log,它只显示第二行:

gino@myrepo$ git log
commit 1254416d309588293372b96fd1f71e30af51b1fe (HEAD -> master)
Author: ...
Date:   Wed Nov 13 22:23:17 2019 +0900

    These lines should be details.

当我尝试使用单行消息 ( #4567: blah) 时,情况更糟。提交 UI 不允许我提交(当我单击提交按钮时没有任何反应),命令面板> Git:提交命令将简单地中止提交(可能是因为它被视为空提交消息)。

如何让 VS Code 识别自定义commentchar设置?

笔记:

标签: gitvisual-studio-codevscode-settingsgit-commit

解决方案


这显然是1.40.0版本的 VS Code 的回归错误。
(感谢@Bauke向我指出相关的 Github 问题。)

https://github.com/microsoft/vscode/issues/84201#issuecomment-552830865

#6403的修复使得输入框现在将开头的行#视为注释。

然后它作为1.40.1版本的 VS Code 的一部分被“修复”。
更新 1.40.1:更新解决了这些问题。)

https://github.com/microsoft/vscode/issues/84201#issuecomment-552840563

#您应该能够提交以任何内容开头并后跟任何内容的单行。

您应该能够提交# 以数字开头的行的消息。以数字开头#和后面不跟数字的行将被注释掉。例如,以下提交消息:

first line
second line
#third line
# fourth line
# 5th line
#6th line
#7 th line
#8

应该变成:

first line
second line
#6th line
#7 th line
#8

因为所有其他行都应该被注释掉。

我说“已修复”是因为从关于 Github 问题的讨论来看,提交 UI 输入框似乎并不完全遵循或使用 git 的commentchar配置,并且它对提交消息的哪些部分是评论有自己的解析。

就我而言,由于我的提交消息遵循“单行开头#并后跟任何内容”的格式,因此它似乎可以工作。但是,如果您使用的是不符合输入框正则表达式规则的不同格式,那么它将无法正常工作。


推荐阅读